我在这个结构中有几个包含视图的单元格:
细胞部分重叠.这意味着单元格A的主视图将部分覆盖单元格B的前视图.如下所示:
我想拦截正面视图和背景视图的触摸,但我希望主视图忽略它们.
(我尝试在主视图上禁用用户交互,但这也会禁用前视图和后视图).
有小费吗?
mat*_*ijz 15
我在这里找到了答案:http://vectorvector.tumblr.com/post/2130331861/ignore-touches-to-uiview-subclass-but-not-to-its
基本上,我将主视图作为UIView的子类,并用此覆盖hitTest:
-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
id hitView = [super hitTest:point withEvent:event];
if (hitView == self) return nil;
else return hitView;
}
Run Code Online (Sandbox Code Playgroud)
(注意,令人困惑的是你必须将UserInteractionEnabled设置为true,勾选,对于有问题的UIView是的!)