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