我在这里发现了很多关于拦截触摸事件并确保它们不会到达某个超级视图的问题。我的问题是相反的。
我有这个自定义UIButton
子类,它有多个UILabels
、 aUIProgressView
和一个自定义UIView
子类作为其子视图。这些子视图在用户交互方面应该是“透明的”,换句话说,它们应该将触摸事件传递给我的UIButton
子类。
根据文档,我觉得默认行为实际上是这样工作的:最前面的视图接收一个触摸事件,然后将事件传递给底层视图(遍历响应者链)。
但是,UIProgressView
我添加到我的UIButton
确实阻止了触摸事件。关于UIProgressView
我写的唯一代码是这样的:
progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(16, 98, 108, 10)];
progressView.progressViewStyle = UIProgressViewStyleBar;
progressView.progress = 0.;
[self addSubview:progressView];
[progressView release];
所以没什么好看的。我的自定义UIView
也没有将触摸事件传递给我UIButton
。怎么了?