通过subView禁用触摸视图

时间:2016-04-13 19:00:25

标签: ios swift uiview sprite-kit

我正在尝试使用SpriteKit + Swift制作我的第一个游戏。

我现在试图解决的问题是,如果我在没有任何按钮的情况下添加到我的主要SKView SUBVIEW只有背景颜色和大小并触摸它,我的主视图处理这种触摸就像没有子视图所有

因此父视图的UITapGestureRecognizer不存在类型为UIView的子视图。我发现解决它的唯一方法是在子视图上放置一个subView大小的按钮,不带文本和处理程序。但这种方式看起来令人毛骨悚然......

1 个答案:

答案 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?