【问题标题】:UIImageView Animation delay between frames?UIImageView 帧之间的动画延迟?
【发布时间】:2012-02-08 04:18:33
【问题描述】:

我正在尝试使用带有数组 if 图像的 UIImageView 创建动画。它工作得很好,除了我需要一些帧之间的不同延迟。在动画 gif 中,您可以设置帧之间的延迟。我看到的每个动画 UIImageView 示例在图像之间都有固定的延迟。

有谁知道如何在帧之间设置不同的延迟?或者,有没有这样的例子?

也许 UIImageView 不适合使用,所以如果有人有替代方法,请告诉我。

我在其他论坛上发布了一个类似的问题,似乎没有人能够回答这个问题。看起来它应该是可行的,因为 .gif 图像一直都有这个。

谢谢

【问题讨论】:

    标签: iphone xcode ipad animation uiimageview


    【解决方案1】:

    这可能看起来很老套,但是:

    来自UIImageView 文档:

    动画图像

    用于动画的UIImage 对象数组。

    @property(nonatomic, copy) NSArray *animationImages
    

    讨论

    数组必须包含UIImage 对象。 您可以使用相同的 数组中多次出现图像对象。 将此属性设置为 nil 以外的值隐藏由 image 表示的图像 财产。该属性的值默认为nil

    因此,您需要将UIImage 多次添加到数组中以进行延迟。

    【讨论】:

    • 我认为这是最简单的解决方案。只需多次添加相同的图像即可获得所需的时间。这不会增加太多开销,因为您只是对同一图像使用了多个引用。
    【解决方案2】:

    您必须使用不同的 UIImageView 才能使其正常工作。试试这个应用程序页面。可能对你有帮助。链接:http://www.raywenderlich.com/2454/how-to-use-uiview-animation-tutorial

    【讨论】:

      【解决方案3】:

      UIImageView 不支持不同图像之间的不同延迟。如果您希望帧之间有不同的延迟,则必须使用多个 UIImageViews 并手动管理它们之间的转换。

      另一种方法是使用UIWebView,其大小正好适合具有所需延迟设置的.gif 图像。

      【讨论】:

      • 哈哈,有趣的是我需要使用 UIWebView。在任何情况下,gif 图像对我来说都不是很好,因为我需要根据用户交互来启动和停止它。我想这没什么大不了的,因为我可以将图像从静态图像交换为动画图像,以产生开始和停止的效果。但实际上,这似乎很愚蠢,因为它已经在 gif 中完成了一段时间。
      【解决方案4】:

      如果您想在您的 iOS 应用程序中尝试我的动画库,它提供了一个完整的解决方案来解决这个问题。例如,您可以查看APNG 应用程序,它是 iTunes 商店中的免费应用程序,可显示动画 APNG 文件。这个应用程序是使用我的 AVAnimator 库创建的,该库包含 APNG 和 GIF 解码支持。 APNG 格式的工作方式与 GIF 类似,因为每一帧都有延迟时间,在这种情况下,您将使用现有软件来创建 APNG。但是,从一系列 PNG 图像中编码一个新的 .mvid 文件(这是一种自定义视频文件格式)更容易。要创建更长的延迟,您只需重复输入 PNG 图像系列中不变的帧。任何一种方法都可以用来创建一个输入电影,该电影可以在特定帧之间以可变时间显示(整体 FPS 将是相同的,但特定帧可以简单地重复,这样它们就不会在一个帧中的 N 帧中改变)排)。您还可以实现特定的用户交互,例如开始动画、在特定帧上暂停,然后从同一帧重新开始。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-20
        • 2023-04-05
        相关资源
        最近更新 更多