いくつかの「サブビュー」を含む UIView (「コンテナー ビュー」) があります。UITapGestureRecognizer をコンテナー ビューに追加して、コンテナー ビューの内側でサブビューの外側の領域に触れたときにアクティブになるようにします。
現時点では、サブビュー内を含むコンテナー ビュー内の任意の場所に触れると、ジェスチャ レコグナイザーがアクティブになります。
実装は次のようになります。
ContainerView *containerView = [[ContainerView alloc] initWithSubViews:array];
UITapGestureRecognizer *tap = [UITapGestureRecognizer alloc] initWithTarget:self action:@selector(someSelector)];
[containerView addGestureRecognizer:tap];
[self.view addSubView:containerView];
ContainerView.m 内
-(id)initWithSubviews:(NSArray *)array {
for (subView *s in array) {
[self addSubView:s];
}
return self;
}
サブビューの後にジェスチャーレコグナイザーが追加されたため、問題が発生したと思います。それが本当なら、解決策として initWithSubViews メソッドを 2 つの別々のメソッドに分割する必要がありますが、これは避けたいと思います。
ありがとうございました