【问题标题】:Mask a whole animation happening in a UIImageView屏蔽 UIImageView 中发生的整个动画
【发布时间】:2009-10-15 10:37:41
【问题描述】:

我需要屏蔽在 UIImageView 中发生的整个动画。我尝试对 UIImageView 进行子类化并在其 drawRect 调用中进行遮罩,但是即使动画播放正常,它也不会像我预期的那样在动画的每一帧上都被调用(实际上它根本没有被调用)。

有人有这方面的经验吗?

【问题讨论】:

    标签: iphone cocoa-touch animation uiimageview mask


    【解决方案1】:

    由于 iPhone OS 上缺少 CIFilter 公共 API,因此无法使用 UIViewCALayer 进行合成。

    这意味着答案是:您不能屏蔽UIImageView 的内容,无论是否动画。

    我提交了一个雷达错误请求,因为我觉得添加CIFilter API 将极大地增强 Cocoa Touch 并扩展基于 UIView/CALayer 的 UI 设计的可能性。目前,如果您想在 iPhone 上进行合成,则必须使用 Quartz(慢)或 OpenGL(自己做所有事情)。

    如果您同意 CIFilters for iPhone OS 的实用性,请考虑在radar 提交请求。请求越多,Apple 就会越早关注它。

    【讨论】:

    • 感谢 Nikolai 证实了我的恐惧。为了解决这个问题,我将 UIView 子类化并使用 Timer 制作动画。现在它可以工作了,但性能很糟糕。
    猜你喜欢
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多