- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个在屏幕上显示动画的 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/
我想为我的 UILabel 实现与 iOS 7 的新 iTunes 远程更新相同的效果。 如果您查看此屏幕: (右边的那个)你会注意到 UILabel 文本颜色是背景模糊的专辑封面,没有黑色 mask
这里有两个组件,UIView *superView 和 UILabel *label。 label 是 superView 的 subview 。问题是当我将标签移出其 super View 时,标签
我正在开发一个应用程序,其中我的所有 UIViewControllers 具有通用的 UITableView 结构。所以我创建了一个包含通用结构的 UITableView 子类,然后我将这个 View
我有一个简单的 iPad 应用程序,其中包含以下 View 层: BaseView(覆盖整个可用区域)。 SquareView(覆盖 100x100px 区域)。 SquareView 作为 subv
我正在查看 SnapKit 文档:http://snapkit.io/docs/ 如果您转到使用部分,它会显示以下示例代码: let box = UIView() superview.addSubv
我正在尝试向页面添加一个新的 subview ,这样除了它本身之外的所有内容都显示为灰色。但是,我是从屏幕的 subview 中调用它的。要将其取出,我必须执行以下操作: [self.view.sup
我正在开发一个小游戏,我想在 super View 上做一些功能.. super View 是一个自定义类,即 Reflection View..并希望在用户移动 View 时隐藏反射.. 这是我所做
ScrollView 有一些 SubViews.... ScrollView 包含它的预定义手势(Pan) 和我的自定义手势(Pan) 以及同时识别它... SubViews 还包含自定义 Pan G
我有一个videPlayerView,它上面有ContainerView来显示activityIndicatorView。当我从单元格内的 collectionView 中选择一个项目时, Vie
我有一个与其他子托管对象处于“对多”关系的托管对象。当我删除子管理对象之一时,主管理对象上表示与子管理对象关系的数组将被清空。 下面是我获取 subManaged 对象并将其删除时发生的情况的日志。我
基本上,我希望能够单击下图中的所有 subview ... 我希望能够点击 View B 的 subview ,但 View A 挡住了,即使 View A subview 没有阻挡下面的 View
我正在创建 UIView 的子类以在项目中使用,并将处理主视图上的触摸。我希望当拖动触摸(在主视图上)并接触特殊的 UIView 时,它们会更改其背景颜色。使用 UIView 的默认“touchesM
我在 UIView 中有一个 UIButton,有两个约束。这两个约束都是在 Interface Builder 中设置的,以便 UIButton 在其 super View 中垂直和水平居中。 我想
Collection View Cell 的子类化方式如下: 我在 Collection View 中有这个布局。在创建每个按钮时,我调用以下代码: [cell.imageButton add
我正在使用自动布局。我有一个 UIView,它位于距 super View 中心 20 像素的边距处。 现在我已经将顶部空间分配给了我在 iPhone 6+ Xib 中创建的 super View 。
这个问题在这里已经有了答案: Xcode 6 beta 7: storyboard adds extra space on right and left sides (1 个回答) 关闭 8 年前
我在屏幕上有一个从 XIB 加载的 subview ,我需要在其父 View 上禁用触摸事件ONLY,同时最终不触摸 subview 。我该怎么做?另外,我使用的是 iOS。 谢谢! 最佳答案 这就是
我有一个 UICollectionView,它使用 - (void)scrollViewDidScroll:(UIScrollView *)scrollView 来确定用户何时滚动到底部。 我的 UI
我试图将点击事件传递给 super View ,但处理长按事件。我已将 LongPressGestureRecognizer 添加到顶 View ,但点击事件未传递到 super View 。我尝试了
我将 subview 添加到父 View ,我想约束 subview 。但它什么都不做。 subview 在父 View 上全屏添加。请帮助我,出了什么问题? 这是我的代码: override f
我是一名优秀的程序员,十分优秀!