iOS项目开发实战——使用CALayer实现图片的淡入淡出效果
2015-09-20 20:48
1101 查看
在移动应用开发中,如果两张图片之间直接进行切换,会显得突兀,用户体验不佳。如果中间能有淡入淡出效果,就会很不错。我们就用CALayer来实现一下:
(1)拖入2张图片,然后代码实现如下:
(2)实现效果如下:
。
。
。
(3)这样的图片切换很舒服,淡入淡出时间可以自己设置。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
(1)拖入2张图片,然后代码实现如下:
#import "ViewController.h" @interface ViewController () @property(nonatomic,strong) CALayer *imageLayer; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIImage *image1 = [UIImage imageNamed:@"img1"]; //创建出图片layer; self.imageLayer = [CALayer layer]; self.imageLayer.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height); [self.view.layer addSublayer:self.imageLayer]; self.imageLayer.contents = (__bridge id)(image1.CGImage); [self performSelector:@selector(layerAnimation) withObject:nil afterDelay:3.0f]; } - (void) layerAnimation{ UIImage *image2 = [UIImage imageNamed:@"img2"]; //图片动画; CABasicAnimation *contentsAnimation = [CABasicAnimation animationWithKeyPath:@"contents"]; contentsAnimation.fromValue = self.imageLayer.contents; contentsAnimation.toValue = (__bridge id)(image2.CGImage); contentsAnimation.duration = 2; //设定layer动画结束之后的值,(必须设定,否则会恢复到动画之前的状态) self.imageLayer.contents = (__bridge id)(image2.CGImage); //提交动画; [self.imageLayer addAnimation:contentsAnimation forKey:nil]; } @end
(2)实现效果如下:
。
。
。
(3)这样的图片切换很舒服,淡入淡出时间可以自己设置。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
相关文章推荐
- 关于 iOS 程序的内存分析
- Windows下搭建IOS开发环境(一)
- 蓝懿iOS培训日志16 字典
- iOS项目开发实战——使用CALayer和定时器实现进度条
- iOS-常用技巧
- BitMap类型的图形上下文
- iOS项目开发实战——使用定时器实现循环操作
- SSH连接IOS越狱设备
- Xcode绘制文字及图片
- 裁剪圆形图片的思路及Demo
- 创建imageview的两种方法及区别
- Xcode7升级到Xcode8之后遇到文件冲突
- IOS开发之免费证书+不越狱真机调试
- iOS系统设备具体型号获取
- iOS保存gif动态图
- iOS exit(0); 直接退出程序
- iOS9适配总结
- block语句块
- 旧项目适配 iOS9 时 .dylib 系统库文件的链接报错的问题处理
- iOS项目开发实战——如何进行延时操作