// // Copyright © 2020 dahua. All rights reserved. // #import "UIImageView+Circle.h" #import static const void *UIImageViewCircleImages = @"UIImageViewCircleImages"; static const void *UIImageViewCircleStyle = @"UIImageViewCircleStyle"; static const void *UIImageViewCircleTimer = @"UIImageViewCircleTimer"; static const void *UIImageViewCircleIndex = @"UIImageViewCircleIndex"; @implementation UIImageView (Circle) - (void)loadGifImageWith:(NSArray *)images TimeInterval:(NSTimeInterval)interval Style:(LCIMGCirclePlayStyle)style { self.images = images; self.style = style; self.timer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(timeFire:) userInfo:nil repeats:YES]; [self setImage:LC_IMAGENAMED(images[0])]; } - (void)timeFire:(NSTimer *)timer { if (self.style == LCIMGCirclePlayStyleCircle) { self.index+=1; if (self.index==self.images.count) { self.index = 0; } }else if (self.style == LCIMGCirclePlayStyleOnce){ self.index+=1; if (self.index==self.images.count) { [self releaseImgs]; } }else{ if (self.index==self.images.count) { self.index-=1; } if (self.index==0) { self.index+=1; } } [self setImage:LC_IMAGENAMED(self.images[self.index])]; } -(void)releaseImgs{ [self.timer invalidate]; } - (NSArray *)images { return objc_getAssociatedObject(self, UIImageViewCircleImages); } - (void)setImages:(NSArray *)images { objc_setAssociatedObject(self, UIImageViewCircleImages, images, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } - (LCIMGCirclePlayStyle)style { return [objc_getAssociatedObject(self, UIImageViewCircleStyle) integerValue]; } - (void)setStyle:(LCIMGCirclePlayStyle)style { objc_setAssociatedObject(self, UIImageViewCircleStyle, @(style), OBJC_ASSOCIATION_RETAIN_NONATOMIC); } - (NSTimer *)timer { return objc_getAssociatedObject(self, UIImageViewCircleTimer); } - (void)setTimer:(NSTimer *)timer { objc_setAssociatedObject(self, UIImageViewCircleTimer, timer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } - (NSUInteger )index { return [objc_getAssociatedObject(self, UIImageViewCircleIndex) integerValue]; } - (void)setIndex:(NSUInteger)index { objc_setAssociatedObject(self, UIImageViewCircleIndex, @(index), OBJC_ASSOCIATION_RETAIN_NONATOMIC); } @end