【发布时间】:2009-10-15 10:37:41
【问题描述】:
我需要屏蔽在 UIImageView 中发生的整个动画。我尝试对 UIImageView 进行子类化并在其 drawRect 调用中进行遮罩,但是即使动画播放正常,它也不会像我预期的那样在动画的每一帧上都被调用(实际上它根本没有被调用)。
有人有这方面的经验吗?
【问题讨论】:
标签: iphone cocoa-touch animation uiimageview mask
我需要屏蔽在 UIImageView 中发生的整个动画。我尝试对 UIImageView 进行子类化并在其 drawRect 调用中进行遮罩,但是即使动画播放正常,它也不会像我预期的那样在动画的每一帧上都被调用(实际上它根本没有被调用)。
有人有这方面的经验吗?
【问题讨论】:
标签: iphone cocoa-touch animation uiimageview mask
由于 iPhone OS 上缺少 CIFilter 公共 API,因此无法使用 UIView 或 CALayer 进行合成。
这意味着答案是:您不能屏蔽UIImageView 的内容,无论是否动画。
我提交了一个雷达错误请求,因为我觉得添加CIFilter API 将极大地增强 Cocoa Touch 并扩展基于 UIView/CALayer 的 UI 设计的可能性。目前,如果您想在 iPhone 上进行合成,则必须使用 Quartz(慢)或 OpenGL(自己做所有事情)。
如果您同意 CIFilters for iPhone OS 的实用性,请考虑在radar 提交请求。请求越多,Apple 就会越早关注它。
【讨论】: