图片切换的效果
效果
源码
https://github.com/YouXianMing/Animations
// // LiveImageView.h // Animations // // Created by YouXianMing on 15/12/27. // Copyright © 2015年 YouXianMing. All rights reserved. // #import <UIKit/UIKit.h> @interface LiveImageView : UIImageView @property (nonatomic) CGFloat duration; @end
// // LiveImageView.m // Animations // // Created by YouXianMing on 15/12/27. // Copyright © 2015年 YouXianMing. All rights reserved. // #import "LiveImageView.h" @interface LiveImageView () { CALayer *_Layer; } @end @implementation LiveImageView - (id)initWithFrame:(CGRect)frame { if ([super initWithFrame:frame]) { _duration = 0.3f; _Layer = self.layer; } return self; } @synthesize image = _image; - (void)setImage:(UIImage *)image { if (_image != image) { CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"contents"]; animation.fromValue = (__bridge id)(_image.CGImage); animation.toValue = (__bridge id)(image.CGImage); animation.duration = _duration; _Layer.contents = (__bridge id)(image.CGImage); [_Layer addAnimation:animation forKey:nil]; _image = image; } } - (UIImage *)image { return _image; } @end
细节