Свифт 3:
Как предложено выше, я использую FLAnimatedImage с FLAnimatedImageView. И я загружаю GIF как набор данных из Xcassets. Это позволяет мне предоставлять различные картинки для iphone и ipad для внешнего вида и нарезки приложений. Это гораздо эффективнее, чем все, что я пробовал. Это также легко сделать паузу с помощью .stopAnimating ().
if let asset = NSDataAsset(name: "animation") {
let gifData = asset.data
let gif = FLAnimatedImage(animatedGIFData: gifData)
imageView.animatedImage = gif
}