当您说超级视图时,我假设您指的是动画视图的超级视图。Apple 的文档对于 的描述非常不具体userInteractionEnabled,但我认为如果将其设置为 false,它将禁用特定视图上的触摸事件,但不会禁用其子视图上的触摸事件。我建议你递归地进行。以下是可用于禁用/启用视图上的所有触摸事件的代码示例:
- (void)setInteraction:(BOOL)allow onView:(UIView *)aView {
[aView setUserInteractionEnabled:allow];
for (UIView * v in [aView subviews]) {
[self setInteraction:allow onView:v];
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在你的 superview 上调用它[self setInteraction:NO onView:[self superview]]。当然,这也会禁用您的触摸事件,因为您在超级视图上递归地禁用它们。当然,您可以随时重新启用触摸事件[self setUserInteractionEnabled:NO]。
另外,Apple 的UIView Class Reference提到某些 UI 组件会重写此方法:
注意:某些 UIKit 子类会覆盖此属性并返回不同的默认值。请参阅您使用的任何类的文档,以确定它是否为此属性返回不同的值。
| 归档时间: |
|
| 查看次数: |
5165 次 |
| 最近记录: |