您的位置:首页 > 移动开发 > IOS开发

iOS-CALayer图片淡入淡出动画

2015-07-21 23:52 489 查看
#import "ViewController.h"

@interface ViewController ()
@property (nonatomic,strong)CALayer *imageLayer;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
UIImage *image1 = [UIImage imageNamed:@"test1.jpg"];

//可以显示图片类容,layer是view的载体
// self.view.layer.contents = (__bridge id)(image.CGImage);

//创建出图片layer
self.imageLayer = [CALayer layer];
self.imageLayer.frame = self.view.bounds;
[self.view.layer addSublayer:self.imageLayer];

self.imageLayer.contents = (__bridge id)(image1.CGImage);
[self performSelector:@selector(imageAnimation) withObject:nil afterDelay:3];
}

- (void)imageAnimation {

//隐式动画
UIImage *image2 = [UIImage imageNamed:@"test2.jpg"];
// self.imageLayer.contents = (__bridge id)(image2.CGImage);
CABasicAnimation *contentsAnimation = [CABasicAnimation animationWithKeyPath:@"contens"];
contentsAnimation.fromValue = self.imageLayer.contents;//原始图片
contentsAnimation.toValue = (__bridge id)(image2.CGImage);//切换后图片
contentsAnimation.duration = 3.f;

CABasicAnimation *boundsAnimation = [CABasicAnimation animationWithKeyPath:@"bounds"];
boundsAnimation.fromValue = [NSValue valueWithCGRect:self.imageLayer.bounds];
boundsAnimation.toValue = [NSValue valueWithCGRect:CGRectMake(10, 100, 200, 200)];
boundsAnimation.duration = 3.f;

CAAnimationGroup *group = [CAAnimationGroup animation];
group.animations = @[contentsAnimation,boundsAnimation];
group.duration = 3.f;
//设置layer动画结束后的值否则会回复东湖钱的状态
self.imageLayer.contents = (__bridge id)(image2.CGImage);
self.imageLayer.bounds = CGRectMake(10, 100, 200, 200);
[self.imageLayer addAnimation:group forKey:nil];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: