Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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
Iphone 关于CALayer和UIView的一个问题_Iphone_Uiview_Calayer - Fatal编程技术网

Iphone 关于CALayer和UIView的一个问题

Iphone 关于CALayer和UIView的一个问题,iphone,uiview,calayer,Iphone,Uiview,Calayer,目标是实现一个半透明层,当需要时,该层将滑出以收集用户响应。半透明层上会有一些图标供用户选择。目前我正在使用一个CALayer对象,它看起来还可以,并且有一些内置动画行为 但问题是CALayer对任何触摸事件都没有反应。现在我想我应该使用UIView。UIView继承自UIResponder,因此其对象自然能够响应用户的事件 这是UIView和CALayer之间的决定。对于CALayer,我已经做了相当多的工作,它看起来很好,除了触摸反应,必须添加。或者我应该使用UIView作为子视图(因为它有

目标是实现一个半透明层,当需要时,该层将滑出以收集用户响应。半透明层上会有一些图标供用户选择。目前我正在使用一个CALayer对象,它看起来还可以,并且有一些内置动画行为

但问题是CALayer对任何触摸事件都没有反应。现在我想我应该使用UIView。UIView继承自UIResponder,因此其对象自然能够响应用户的事件

这是UIView和CALayer之间的决定。对于CALayer,我已经做了相当多的工作,它看起来很好,除了触摸反应,必须添加。或者我应该使用UIView作为子视图(因为它有内置的触摸响应)


希望有人能帮上忙

为了响应用户交互,最好的方法是使用
UIView
。你可能不用它也能用,但我不推荐


至于将现有层与
UIView
集成,我将创建
UIView
的子类,并重写其
+layerClass
方法,以返回自定义
CALayer
类。或者,如果您没有使用自定义的
CALayer
子类(通常不需要创建自己的子类),您可以在
UIView
的方法中进行自定义绘图。

谢谢您的建议和解释。我想我应该认真考虑用UIView重做这个部分。这是一个艰难的决定,但这将是一次很好的学习经历。谢谢