我有一個UIView('容器視圖'),其中包含幾個'子視圖'。我想在容器視圖中添加一個UITapGestureRecognizer,這樣當我觸摸容器視圖內的子區域之外的區域時,它將被激活。排除子視圖從UIGestureRecognizer
此刻,觸摸容器視圖中的任何位置,包括子視圖內激活手勢識別器。
實施看起來是這樣的: 在控制器:
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方法分成兩個獨立的方法,我寧願避免。
謝謝
如果需要檢查很多子視圖,這是昂貴和毛茸茸的。 – CodaFi 2013-03-17 03:51:37
是。我看..我沒有看到任何其他好的解決方案..如果你有,請隨時分享.. :) – 2013-03-17 03:58:09