ios - 如何使 CALayer 可点击?

标签 ios uibutton core-animation calayer catransformlayer

我正在使用 CATransformLayer 创建一堆图层并使用 3D 透视为它们制作动画以制作立方体(类似这样的东西)

CATransformLayer with sublayers

将 UIButton 添加到此立方体的一侧的最佳方法是什么?我希望能够接收事件并从 IBOutlet 访问按钮。

我已经尝试在我的 XIB 中创建一个带有按钮的 UIView,并将其层插入到 CATransformLayer 中,它显示出来但按钮不可点击。我有一种感觉,这是因为 UIKit 处理事物的触摸/事件方面,层只是在那里进行绘图。

(顺便说一句,我已经看到了 this question,但我觉得这个案例有足够的不同,值得写一篇新文章)

最佳答案

托管所有图层的 Root View 正在获取图层树的所有内容

在那里你必须做

CALayer *touchedLayer = [self.rootLayer hitTest:touches.anyObject.locationInWindow];

来自评论:如果您想在动画期间检查,请询问您的表示层:

CALayer *touchedLayer = [self.rootLayer.presentationLayer hitTest:touches.anyObject.locationInWindow];

关于ios - 如何使 CALayer 可点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13629923/

相关文章:

ios - Apple 由于崩溃而拒绝了我的应用程序,无法重现

ios - 编译错误 AFNetworking ,语义问题?

ios - 如何以编程方式更改 UIButton 内的 UIImageView 的图像?

ios - 倾斜文本后创建 UIImage

ios - SceneKit Rigged 角色动画提高性能

ios - 在 iOS 中重现 Tumblr 标签效果

iphone - 将图像存储到sqlite数据库中

PHP Web服务,在脚本执行结束前发送响应

ios - 如何让 iOS SearchBar 键盘搜索按钮执行操作

swift - 如何从 NSObject 访问多个按钮?