我想在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中。
+UIImage animatedImageWithAnimatedGIFData:
您首先需要将Objective-C标头导入Swift。 将Swift与Cocoa和Objective- C结合使用 说明了如何做到这一点:
要在与Swift代码相同的框架目标中导入一组Objective-C文件,您需要将这些文件导入框架的Objective-C伞形标头中。 从同一框架将Objective-C代码导入Swift 在“打包设置”下的“构建设置”下,确保该框架目标的“定义模块”设置被设置为“是”。 在您的伞形头文件中,导入要公开给Swift的每个Objective-C头。例如: #import "UIImage+animatedGIF.h"
要在与Swift代码相同的框架目标中导入一组Objective-C文件,您需要将这些文件导入框架的Objective-C伞形标头中。
从同一框架将Objective-C代码导入Swift
#import "UIImage+animatedGIF.h"
然后,您可以testImage按照以下步骤进行设置:
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()