JMAnimatedImageView 是 UIImageView 的一个高性能子类
0.2.4 :
只需将您的 UIImageView
实例替换为 JMAnimatedImageView
实例。
如果您使用 CocoaPods,最快捷的尝试方法是键入以下内容到命令行
$ pod try JMAnimatedImageView
在您的代码中,导入 "JMAnimatedImageView.h"
和 "JMAnimatedImageView.h"
//GIF example
@property (weak, nonatomic) IBOutlet JMAnimatedImageView *jmImageView;
[self.jmImageView reloadAnimationImagesFromGifNamed:@"rock"];
self.jmImageView.animationType = JMAnimatedImageViewAnimationTypeAutomaticLinearWithoutTransition;
[self.jmImageView startAnimating];
//PNG example with manual animation
@property (weak, nonatomic) IBOutlet JMAnimatedImageView *jmImageView;
self.jmImageView.animationDelegate = self;
self.jmImageView.animationDatasource = self;
[self.jmImageView reloadAnimationImages]; //<JMOImageViewAnimationDatasource>
self.jmImageView.animationType = JMAnimatedImageViewAnimationTypeAutomaticLinearWithoutTransition;
self.jmImageView.memoryManagementOption = JMAnimatedImageViewMemoryLoadImageLowMemoryUsage;
[self.jmImageView startAnimating];
@property (weak, nonatomic) IBOutlet JMAnimatedImageView *jmImageView;
[[JMApi sharedApi] downloadYourGifFileHasData:^(NSData *gifData) {
self.animatedImageView.animationType = JMAnimatedImageViewAnimationTypeAutomaticLinearWithoutTransition;
self.animatedImageView.memoryManagementOption = JMAnimatedImageViewMemoryLoadImageLowMemoryUsage;
[self.animatedImageView reloadAnimationImagesFromGifData:gifData fromUrl:url];
[self.animatedImageView startAnimating];
}];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *postOperation = [[AFHTTPRequestOperation alloc] initWithRequest:req];
[postOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
self.animatedImageView.animationType = JMAnimatedImageViewAnimationTypeAutomaticLinearWithoutTransition;
self.animatedImageView.memoryManagementOption = JMAnimatedImageViewMemoryLoadImageLowMemoryUsage;
[self.animatedImageView reloadAnimationImagesFromGifData:responseObject fromUrl:url];
[self.animatedImageView startAnimating];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Image error: %@", error);
block(NO, nil);
}];
[postOperation start];
typedef NS_ENUM(NSUInteger, JMAnimatedImageViewAnimationType) {
JMAnimatedImageViewAnimationTypeInteractive = 0,
//Animation, carousel effect
JMAnimatedImageViewAnimationTypeManualSwipe,
//Automatic rotation, use animationDuration + animationRepeatCount
JMAnimatedImageViewAnimationTypeAutomaticLinear,
JMAnimatedImageViewAnimationTypeAutomaticLinearWithoutTransition,
JMAnimatedImageViewAnimationTypeAutomaticReverse,
};
typedef NS_ENUM(NSUInteger, JMAnimatedImageViewMemoryOption) {
JMAnimatedImageViewMemoryLoadImageSystemCache = 0, //images memory will be retain by system
JMAnimatedImageViewMemoryLoadImageLowMemoryUsage, //images loaded but not retained by the system
JMAnimatedImageViewMemoryLoadImageCustom //images loaded by you (JMOImageViewAnimationDatasource)
};
typedef NS_ENUM(NSUInteger, JMAnimatedImageViewOrder) {
JMAnimatedImageViewOrderNormal = 1,
JMAnimatedImageViewOrderReverse = -1
};