Если вы ориентируетесь на iOS7 и уже разбили изображение на кадры, вы можете использовать его animatedImageNamed:duration:
.
Допустим, вы анимируете спиннер. Скопируйте все свои кадры в проект и назовите их следующим образом:
spinner-1.png
spinner-2.png
spinner-3.png
- и т. д. ,
Затем создайте изображение с помощью:
[UIImage animatedImageNamed:@"spinner-" duration:1.0f];
Из документов :
Этот метод загружает серию файлов, добавляя серию чисел к базовому имени файла, указанному в параметре name. Например, если параметр name имеет в качестве содержимого 'image', этот метод попытается загрузить изображения из файлов с именами 'image0', 'image1' и так далее до 'image1024'. Все изображения, включенные в анимированное изображение, должны иметь одинаковый размер и масштаб.
Я бы рекомендовал использовать следующий код, он намного легче и совместим с ARC и не-ARC проектами, он добавляет простую категорию в UIImageView:
https://github.com/mayoff/uiimage-from-animated-gif/
источник
FLAnimatedImage - это эффективный движок анимированных GIF с открытым исходным кодом для iOS:
Это хорошо протестированный компонент, который я написал для поддержки всех GIF-файлов во Flipboard .
источник
Другой альтернативой является использование
UIWebView
для отображения анимированного GIF. Если GIF будет загружен с сервера, это позаботится о загрузке. Он также работает с локальными GIF-файлами.источник
Из iOS 11 фреймворк Photos позволяет добавлять воспроизведение анимированных Gif-файлов.
Образец приложения можно скачать здесьПодробнее о воспроизведении анимированных Gif-файлов (начиная с 13:35 мин): https://developer.apple.com/videos/play/wwdc2017/505/
источник
#import <QuickLook/QuickLook.h> #import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; QLPreviewController *preview = [[QLPreviewController alloc] init]; preview.dataSource = self; [self addChildViewController:preview]; [self.view addSubview:preview.view]; } #pragma mark - QLPreviewControllerDataSource - (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)previewController { return 1; } - (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)idx { NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"myanimated.gif" ofType:nil]]; return fileURL; } @end
источник
Вы можете использовать SwiftGif по этой ссылке
Применение:
imageView.loadGif(name: "jeremy")
источник