如何在Swift中将gif显示到UIImageView中?

我想在UIImageView中使用gif,但不能。我的代码是:

- (void)viewDidLoad {

[super viewDidLoad];

NSURL *url = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"gif"];

UIImage *testImage = [UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url]];

self.dataImageView.animationImages = testImage.images;

self.dataImageView.animationDuration = testImage.duration;

self.dataImageView.animationRepeatCount = 1;

self.dataImageView.image = testImage.images.lastObject;

[self.dataImageView startAnimating];

}

迅速:

var url : NSURL = NSBundle.mainBundle().URLForResource("MAES", withExtension: "gif")

在客观CI中有animationImageWithAnimatedGIFData,但是很快我不知道怎么称呼它,或者不存在。

谢谢!

回答:

我假设您使用的是https://github.com/mayoff/uiimage-from-animated-

gif,+UIImage

animatedImageWithAnimatedGIFData:源代码在Objective-C中。

您首先需要将Objective-C标头导入Swift。

说明了如何做到这一点:

要在与Swift代码相同的框架目标中导入一组Objective-C文件,您需要将这些文件导入框架的Objective-C伞形标头中。

  1. 在“打包设置”下的“构建设置”下,确保该框架目标的“定义模块”设置被设置为“是”。
  2. 在您的伞形头文件中,导入要公开给Swift的每个Objective-C头。例如:

#import "UIImage+animatedGIF.h"

然后,您可以testImage按照以下步骤进行设置:

var testImage = UIImage.animatedImageWithAnimatedGIFData(

NSData.dataWithContentsOfURL(url))

self.dataImageView.animationImages = testImage.images

self.dataImageView.animationDuration = testImage.duration

self.dataImageView.animationRepeatCount = 1

self.dataImageView.image = testImage.images.lastObject

self.dataImageView.startAnimating()

以上是 如何在Swift中将gif显示到UIImageView中? 的全部内容, 来源链接: utcz.com/qa/428242.html

回到顶部