Cocoa iPhone SDK 开发 - 如果 UIImageView 附加了 CABasicAnimation,则 touchesBegan 方法不起作用

Posted

技术标签:

【中文标题】Cocoa iPhone SDK 开发 - 如果 UIImageView 附加了 CABasicAnimation,则 touchesBegan 方法不起作用【英文标题】:Cocoa iPhone SDK development - touchesBegan method not working if the UIImageView has CABasicAnimation attached 【发布时间】:2011-04-09 02:16:30 【问题描述】:

我创建了一个派生自 UIImageView 的类(类名 Customer)。 在这个 Customer 类中,我实现了方法“touchesBegan”。

另外,我将 CABasicAnimation 应用到 Customer 类的层。 (动画只是移动图像视图。这是必要的,因为我想跟踪 animationDidStop 事件)。

问题是当我触摸图像视图的当前位置时,touchesBegan 不起作用。它仅在我触摸原始框架(创建它的位置)时才起作用。

我的建议是 touchesBegan 不是在presentationLayer上应用,而是在原始frame上应用。

你有办法解决这个问题吗? 我真的很想从 Customer 类中解决这个问题,而不是从主 UIViewController。

非常感谢, 沙哈尔。

【问题讨论】:

【参考方案1】:

您是否为Customer 类启用了userInteraction 标志到YES

谢谢,

【讨论】:

是的,我有。当我单击原始框架的位置时,它确实有效。但是框架通过 CABasicAnimation 移动,它改变了presentationLayer。我希望在presentationLayer中捕捉到点击..

以上是关于Cocoa iPhone SDK 开发 - 如果 UIImageView 附加了 CABasicAnimation,则 touchesBegan 方法不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa/iPhone:BackgroundColor 和 Opaque 属性

图书┃Swift与Cocoa框架开发

如何让 Cocoa 明白我的 iPhone 应用程序不是英文的?

iPhone 上 SQLite 的最佳 Cocoa/Objective-C 包装器库 [关闭]

从 iPhone 到 Mac 编程

为 iPad 开发应用程序