ナビゲーションバーのボタンをクリックすると表示されるUIViewサブクラスがあります。私はiphoneでUIPopoverのような視点を真似しようとしています。 私が悩んでいるのは、ボックスの外に触れたときにサブビューを削除する必要があるということです。サブビュー外のタッチイベントでサブビューが消えるようにする
提案がありますか?
ナビゲーションバーのボタンをクリックすると表示されるUIViewサブクラスがあります。私はiphoneでUIPopoverのような視点を真似しようとしています。 私が悩んでいるのは、ボックスの外に触れたときにサブビューを削除する必要があるということです。サブビュー外のタッチイベントでサブビューが消えるようにする
提案がありますか?
サブビューが表示されるたびにタッチを確認するために、すべてのレイヤーに目に見えないレイヤーを設定し、サブビューに座標があるかどうかを手動で確認して手動でメインビューから削除することができます。
代わりにビューを除去するキーボードを退けるためにここに例を見ることができます:
http://www.ke-cai.net/2011/05/tap-background-to-dismiss-keyboard-for.html
あなたのポップアップビューを定義するとき、あなたはそれが見えRECT(フレーム)です定義する必要があります。 メインビューコントローラで、ユーザーが画面をタップすると、タッチ位置を取得し、その点がポップアップフレームに含まれていないことを確認します。私はそれはあなたを助けるいただければ幸い
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *aTouch = [touches anyObject];
if (aTouch.tapCount == 1)
{
CGPoint p = [aTouch locationInView:self.view];
if (!CGRectContainsPoint(yourpopupview.frame, p))
{
// dismiss the popup
}
}
}
:
これは、これを説明するための単なる一例です。
ありがとう,,,,これは私のために働いた,,,, :) – Dhiru