我有一个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方法分成两个单独的方法,但我想避免这样做。
谢谢您