在Swift中显示一系列图像,如gif

时间:2016-05-10 01:20:22

标签: ios xcode swift

我试图逐帧显示100张图片,类似于gif在我的Swift应用程序中的工作方式。由于UIImageView不支持GIF,我已经阅读了最好用代码快速切换图像。我已经尝试过做其他一些教程所说的但是它都会出现错误。我对Swift很新,所以我很困惑。我知道我需要将它们存储在某种类型的数组中,但有些人能够告诉我确切的语法吗?以及我在实际故事板中需要做的任何事情以及代码。 谢谢!

2 个答案:

答案 0 :(得分:1)

尝试这样的事情。首先,您需要向Assets添加一系列图像。在此示例中,它们将命名为image_1,image_2 ... image_16。你可以摆弄持续时间等

class ViewController: UIViewController
{
    private var imageViewAnimated: UIImageView!
    private var animatedImages = [UIImage]()

    override func viewDidLoad() {
        super.viewDidLoad()

        imageViewAnimated = UIImageView()
        view.addSubview(imageViewAnimated)

    }

    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()

        let selfSize: CGSize = view.bounds.size

        var imageViewAnimatedFrame: CGRect = CGRectZero

        imageViewAnimatedFrame.origin.x = selfSize.width / 2
        imageViewAnimatedFrame.origin.y = selfSize.height / 2
        imageViewAnimatedFrame.size.height = 100
        imageViewAnimatedFrame.size.width = 100
        imageViewAnimated.frame = imageViewAnimatedFrame

        for index in 1...16
        {
            let imageName = "image_\(index)"

            animatedImages.append(UIImage(named: imageName)!)
        }

        imageViewAnimated.animationImages = animatedImages
        imageViewAnimated.animationDuration = 0.5
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        imageViewAnimated.startAnimating()
    }
}

答案 1 :(得分:0)

UIImageView已经支持基于帧的动画。我建议你用它。有关详细信息,请参阅UIImageView类参考。