現在、いくつかの iOS アプリケーションで、隣接するビューを再帰的に取得する必要があります。のようなものがあるのだろうviewAtLocation:(CGPoint)location
か?または、それを実装する方法はあります。
id matrix[row][col]
サイズで決定された位置をインデックス値としてC配列を使用し、すべてを取得してループ内で1つずつsubview
チェックするなど、いくつかの方法を使用しました。location
では、他に何ができるでしょうか?
現在、いくつかの iOS アプリケーションで、隣接するビューを再帰的に取得する必要があります。のようなものがあるのだろうviewAtLocation:(CGPoint)location
か?または、それを実装する方法はあります。
id matrix[row][col]
サイズで決定された位置をインデックス値としてC配列を使用し、すべてを取得してループ内で1つずつsubview
チェックするなど、いくつかの方法を使用しました。location
では、他に何ができるでしょうか?
hitTest:withEvent
不透明度が 0.0 の場合にビューを無視するなどの処理を行う標準を使用することをお勧めします。ドキュメントには、nil
手動で呼び出すときにイベントを渡すように記載されています。
これは、 を使用して境界を拡張したビューに対しても正しく動作しますpointInside:withEvent:
。
次のコードはあなたのためにそれを行います
UIView *view = <Your View>;
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[view addGestureRecognizer:recognizer];
[recognizer release];
- (void)handleSingleTap:(UITapGestureRecognizer*)recognizer{
CGPoint p = [recognizer locationInView:recognizer.view];
for (UIView *v in recognizer.view.subviews) {
if (CGRectContainsPoint(v.frame, p)) {
NSLog(@"view Found with frame %@",NSStringFromCGRect(v.frame));
//If your views doesn't overlap then break from here
break;
}
}
}