我正在尝试使用SpriteKit + Swift制作我的第一个游戏。
我现在试图解决的问题是,如果我在没有任何按钮的情况下添加到我的主要SKView SUBVIEW只有背景颜色和大小并触摸它,我的主视图处理这种触摸就像没有子视图所有
因此父视图的UITapGestureRecognizer不存在类型为UIView的子视图。我发现解决它的唯一方法是在子视图上放置一个subView大小的按钮,不带文本和处理程序。但这种方式看起来令人毛骨悚然......
答案 0 :(得分:0)
可能是您的子视图(或其父视图之一)将userInteractionEnabled
设置为false
。默认情况下,UIView将userInteractionEnabled
设置为true
,但是例如UIImageView(它是UIView的子类)默认情况下userInteractionEnabled
设置为false
。
设置为NO时,用户事件 - 例如触摸和键盘 - 用于 视图将被忽略并从事件队列中删除。设置为时 是的,事件通常会传递到视图。默认值为 这个属性是YES。
(...)
请注意
某些UIKit子类会覆盖此属性并返回不同的属性 默认值。请参阅该类的文档以确定它是否可用 返回不同的值。
有关详细信息,请参阅Apple docs。
它本身可能不是您的子视图,但它的父视图之一也是如此,因为此设置向下传播。
如果设置为NO,则从中排除此视图(及其子视图) 接受接触。触及此视图或其中一个子视图“堕落 通过“对它背后的观点。”
来源:Matt Neuburg的iOS编程
有关详情,请查看On iOS, if a superview's userInteractionEnabled is NO, then all subviews are disabled as well?