@H_
403_0@
我想在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")
在目标C中我有animatedImageWithAnimatedGIFData,但是在swift中我不知道如何调用这个或者如果不存在..
谢谢!
我假设您正在使用
https://github.com/mayoff/uiimage-from-animated-gif for UIImage animatedImageWithAnimatedGIFData:并且源
代码在Objective-C中.
您需要先将Objective-C标头导入Swift. Using Swift with Cocoa and Objective-C解释了如何执行此操作:
To import a set of Objective-C files in the same framework target as your Swift code,
you’ll need to import those files into the Objective-C umbrella header for the
framework.
To import Objective-C code into Swift from the same framework
- Under Build Settings,in Packaging,make sure the Defines Module setting for that framework target is set to Yes.
-
In your umbrella header file,import every Objective-C header you want to expose to Swift. For example:
#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()