2011-06-18 128 views
3

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

但问题是CALayer根本不响应任何触摸事件。现在我想我应该使用UIView代替。 UIView从UIResponder继承,所以它的对象自然能够响应用户的事件。

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

希望有人见地这个可以帮助...

回答

5

为了响应用户交互,最好的办法是使用UIView。你可能可以让它在没有一个的情况下工作,但我不会推荐它。

至于现有的层与UIView整合,我想创建的UIView一个子类,并覆盖其+layerClass方法来回报您的自定义CALayerClass。或者,如果您不使用自定义CALayer子类(并且通常不需要创建自己的子类),则可以在UIView-drawLayer:inContext:方法中执行自定义绘图。

+1

感谢您的建议和解释。猜猜我应该认真考虑用UIView重写这部分。这是一个困难的决定,但这将是一次很好的学习经历。谢谢 ... – Stanley