动画背景UIImage

时间:2016-03-02 18:25:39

标签: ios swift animation core-animation

我将此资源作为视图的背景,并使用下面描述的代码将其分配给背景。

动画是让对角线行动画,所以当加载发生时它们会从左向右移动。

有关如何完成此操作的任何指示?

var view = UIImageView()
view.translatesAutoresizingMaskIntoConstraints = false
view.image = UIImage(assetIdentifier: "background-view")
view.layer.cornerRadius = 8.0
view.layer.masksToBounds = true
view.contentMode = .ScaleAspectFill
view.clipsToBounds = true
view.backgroundColor = UIColor.whiteColor()

return view

“background-view”就在这里 enter image description here

2 个答案:

答案 0 :(得分:0)

我想最好的方法是让所有图像都需要(所有帧)来创建你想要的动画图像,然后将这些图像放在UIImageView's animationImages属性中。

例如,如果你得到一个加载条gif loading_bar.gif,你可以获得该gif中的所有不同图像(参见本教程以及其他文章:http://www.macobserver.com/tmo/article/preview-extracting-frames-from-animated-gifs)。

在代码中加载所有图像(例如在assets文件夹中),然后执行以下操作:

func getAnimatedImages -> Array<UIImage>
{
    var animatedImages = Array<UIImage>()
    var allImagesLoaded = false
    var i = 0
    while !allImagesLoaded
    {
        if let image = UIImage(named: "background_" + String(i))
        {
            animatedImages.append(image)
            i++
        }
        else
        {
            allImagesLoaded = true
        }
    }

    return animatedImages
}

(如果您将图像称为background_0,background_1等...) 然后

self.yourBackgroundImageView.animationImages = self.getAnimatedImages
self.yourBackgroundImageView.startAnimating()

答案 1 :(得分:0)

我会使用方法class func animatedImageNamed(_ name: String, duration duration: NSTimeInterval) -> UIImage?

来自Apple doc:

  

此方法会尝试从名称为“image0”,“image1”等文件加载图像,直到“image1024”。动画图像中包含的所有图像应具有相同的大小和比例。

如果你创建一个动画图像,你可以将它分配给你的UIImageView,它会自动动画。

至于图像创建@Randy有一个很好的主意:)