我有一个包含多个“子视图”的 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 方法分成两个单独的方法,我希望避免这样做。
谢谢你