Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在隐藏的UIView中接收触摸事件?_Ios_Objective C_Uiview - Fatal编程技术网

Ios 在隐藏的UIView中接收触摸事件?

Ios 在隐藏的UIView中接收触摸事件?,ios,objective-c,uiview,Ios,Objective C,Uiview,是否可以以某种方式从不可见的UIView接收和响应触摸事件。我试着——以及从苹果的文档中读到——简单地设置“隐藏”是行不通的。我正在寻找一种替代方法来达到同样的效果 隐藏视图将从其窗口中消失,并且不接收输入事件。但是,它仍保留在superview的子视图列表中,并像往常一样参与自动调整大小。使用子视图隐藏视图的效果是隐藏这些子视图及其可能具有的任何视图子视图。这种效果是隐式的,不会改变接收者后代的隐藏状态 使其透明,而不是隐藏(alpha设置为0)。如果这不起作用,请将其设置为几乎透明(alph

是否可以以某种方式从不可见的UIView接收和响应触摸事件。我试着——以及从苹果的文档中读到——简单地设置“隐藏”是行不通的。我正在寻找一种替代方法来达到同样的效果

隐藏视图将从其窗口中消失,并且不接收输入事件。但是,它仍保留在superview的子视图列表中,并像往常一样参与自动调整大小。使用子视图隐藏视图的效果是隐藏这些子视图及其可能具有的任何视图子视图。这种效果是隐式的,不会改变接收者后代的隐藏状态


使其透明,而不是隐藏(alpha设置为0)。如果这不起作用,请将其设置为几乎透明(alpha设置为0.1)。

如果视图已将userInteractionEnabled设置为“是”,则隐藏时可触摸。例如,尝试使用UIButton。

您可以使用点击测试咀嚼来完成。但你为什么要这么做?整个想法毫无意义。如果用户看不到视图,则用户不能触摸该视图。这就是这个规则的原因。@matt我们正在将UIView渲染为一个纹理,并在OpenGL的四边形上显示它。但是,我们仍然希望UIView响应输入以控制视图。很不幸,更改alpha会影响渲染为纹理的图像,使其显示为透明。请在渲染后执行此操作。或者只制作一个与hit tester大小和位置相同的不同UIView。使其透明。alpha切换非常聪明,几乎可以工作,不幸的是,将alpha降低到过低会自动禁用输入响应,任何更高的值都会使层仍然可见。首先,将alpha设置为1相当于完全不透明。其次,alpha值为0的视图不接收触摸事件。这个答案在各方面都是完全错误的。