iMessageを使用すると、アニメーションGIFを送信および表示できるようになりました。これは、AppleがアプリケーションでのアニメーションGIFの表示をサポートしているということですか、それとも、画像をフレームに分割して順次表示する最も簡単な方法ですか?iOS 5.1でアニメーションGIFを表示する最も簡単な方法は何ですか?
ありがとう!
回答:
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に単純なカテゴリを追加します。
FLAnimatedImageは、iOS用の高性能なオープンソースのアニメーションGIFエンジンです。
これは、FlipboardのすべてのGIFを強化するために私が作成した、十分にテストされたコンポーネントです。
もう1つの方法はUIWebView
、アニメーションGIFを表示するためにaを使用することです。GIFがサーバーからフェッチされる場合は、これでフェッチが処理されます。ローカルGIFでも動作します。
iOSの11枚の写真のフレームワークのアニメーションGIFの再生を追加することができます。
アニメーション化されたGifs再生の詳細(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