我有一个UIView('容器视图'),其中包含几个"子视图".我想在容器视图中添加一个UITapGestureRecognizer,这样当我触摸容器视图内的区域但在子视图之外时,它会被激活.
此时,触摸容器视图内的任何位置(包括子视图内部)都会激活手势识别器.
实现看起来像这样:在控制器中:
ContainerView *containerView = [[ContainerView alloc] initWithSubViews:array];
UITapGestureRecognizer *tap = [UITapGestureRecognizer alloc] initWithTarget:self action:@selector(someSelector)];
[containerView addGestureRecognizer:tap];
[self.view addSubView:containerView];
Run Code Online (Sandbox Code Playgroud)
在ContainerView.m中
-(id)initWithSubviews:(NSArray *)array {
for (subView *s in array) {
[self addSubView:s];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
我认为问题出现是因为在子视图之后添加了手势识别器.如果这是真的那么解决方案将需要将initWithSubViews方法分成两个单独的方法,我宁愿避免.
谢谢
我已经看到DataBindingUtil所有三种方法都使用过,并且从文档(https://developer.android.com/reference/android/databinding/DataBindingUtil)中不清楚这三种方法之间的区别是什么。