【发布时间】:2011-08-04 11:43:05
【问题描述】:
我有几个单元格包含此结构中的视图:
- 主视图
- 后视
- 前视图
单元格部分重叠。这意味着单元格 A 的主视图将部分覆盖单元格 B 的前视图。像这样:
- B 主视图
- B 后视
- B 前视图
- 主视图
- 后视图
- 前视图
我想拦截对前视图和后视图的触摸,但我希望主视图忽略它们。
(我尝试在主视图上禁用用户交互,但这也会禁用前视图和后视图)。
有什么建议吗?
【问题讨论】:
我有几个单元格包含此结构中的视图:
单元格部分重叠。这意味着单元格 A 的主视图将部分覆盖单元格 B 的前视图。像这样:
我想拦截对前视图和后视图的触摸,但我希望主视图忽略它们。
(我尝试在主视图上禁用用户交互,但这也会禁用前视图和后视图)。
有什么建议吗?
【问题讨论】:
我在这里找到了答案: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;
}
(请注意,对于有问题的 UIView,您必须将 UserInteractionEnabled 设置为 true、勾选、是!)
【讨论】: