gpt4 book ai didi

ios - Superview 忽略 UserInteractionEnabled = NO?

转载 作者:可可西里 更新时间:2023-11-01 03:56:25 36 4
gpt4 key购买 nike

我有一个在屏幕上显示动画的 subview ,当它出现在屏幕上时,我希望 super View (在我的例子中是背景中的 View )忽略触摸事件。我尝试了一切,但没有用。

有没有办法“强制” super View 停止接收触摸事件?

谢谢!

最佳答案

当您说父 View 时,我假设您指的是动画 View 的父 View 。 Apple 的文档对 userInteractionEnabled 没有具体说明,但我认为如果将其设置为 false,它会禁用特定 View 上的触摸事件,但不会禁用其 subview 上的触摸事件。我建议你递归地做。下面是一个代码示例,您可以使用它来禁用/启用 View 上的所有触摸事件:

- (void)setInteraction:(BOOL)allow onView:(UIView *)aView {
[aView setUserInteractionEnabled:allow];
for (UIView * v in [aView subviews]) {
[self setInteraction:allow onView:v];
}
}

然后您可以在您的 super View 上调用它 [self setInteraction:NO onView:[self superview]]。当然,这也会禁用你的触摸事件,因为你在你的 super View 上递归地禁用它们。当然,您始终可以重新启用触摸事件 [self setUserInteractionEnabled:NO]

此外,Apple 的 UIView Class Reference提到一些 UI 组件重写了这个方法:

Note: Some UIKit subclasses override this property and return a different default value. See the documentation for any class you use to determine if it returns a different value for this property.

关于ios - Superview 忽略 UserInteractionEnabled = NO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6968558/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com