1

私は私が示している見解を持っています。ビューはUITableViewと同じ画面に表示されます。画面のどこかにタッチしたときにビューを閉じたいのですが、そのタッチがターゲットに到達するのを防ぎたくありません。たとえば、ユーザーがテーブルビューをスクロールしたり、セルなどを選択したりした場合、ビューを閉じることができるように知りたいのですが、ユーザーが触れていたものはすべて通常どおりに反応するようにします。どんな助けでも素晴らしいでしょう。

4

3 に答える 3

1

それが役に立てば幸い:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{
  UITouch *touch = [[event allTouches] anyObject];

 CGPoint location = [touch locationInView: touch.view];
  if(CGRectContainsPoint(tableView.frame, location) || CGRectContainsPoint(anyOtherObject.frame, location))
 {
    [self performAction];
 }
[self.view removeFromSuperView];
}
于 2012-04-05T12:35:10.390 に答える
1

hitTest:withEvent:そのUIViewのクラスにメソッドを実装します。タッチの位置を確認してください。ビューのフレームに含まれていない場合は、ビューを閉じます。

于 2012-04-05T12:31:58.287 に答える
0

UIPopoverまたはUIActionSheetを使用すると、ほぼ正確にこの動作を示します。これは、UIViewに埋め込まれたUITableViewとUITableViewで行いました。

于 2012-04-05T12:32:23.493 に答える