[objective-c] iOS에서 애니메이션 GIF 표시

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에 간단한 범주를 추가합니다.

https://github.com/mayoff/uiimage-from-animated-gif/


답변

FLAnimatedImage 는 iOS 용 고성능 오픈 소스 애니메이션 GIF 엔진입니다.

  • 데스크톱 브라우저에 필적하는 재생 속도로 여러 GIF를 동시에 재생합니다.
  • 가변 프레임 지연을 고려합니다.
  • 메모리 부족시 정상적으로 작동합니다.
  • 첫 번째 재생 루프 동안 지연 또는 차단 제거
  • 최신 브라우저와 동일한 방식으로 빠른 GIF의 프레임 지연을 해석합니다.

Flipboard의 모든 GIF구동 하기 위해 작성한 잘 테스트 된 구성 요소입니다 .


답변

또 다른 대안은를 사용 UIWebView하여 애니메이션 GIF를 표시하는 것입니다. GIF를 서버에서 가져 오면 가져 오기가 처리됩니다. 로컬 GIF에서도 작동합니다.


답변

에서 아이폰 OS (11) 사진 프레임 워크는 애니메이션 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")