CALayer Mask - 2 - CAShapeLayer
2016-02-02 11:07
387 查看
上篇讲到如何利用CALayer套图片作为一个UIView的层的mask遮罩,这里我们介绍几个更加炫酷的CALayer的子类,作为Mask有更多炫酷的效果。
转载自:http://www.jianshu.com/p/21f2b09d5445#
主要有三个类:CAShapeLayer CAGradientLayer CARelicatorLayer
我们逐个来学习:
一个不存在任何遮罩的图片效果:
如果添加如下的矩形遮罩mask:
效果:
如果添加圆形遮罩:
效果:
效果不错吧?
我们来看看关于CAShapLayer的官方解释:
包括头文件的解释:
提到了几个关键的名次
路径对象:
光珊化:即类似阴影的边框效果
贝赛尔曲线:
好好看看这几篇就能掌握了
原理:
http://www.cnblogs.com/jay-dong/archive/2012/09/26/2704188.html
使用:
http://www.henishuo.com/uibezierpath-draw/ http://my.oschina.net/lanrenbar/blog/389379?fromerr=OtXb0JpL
转载自:http://www.jianshu.com/p/21f2b09d5445#
主要有三个类:CAShapeLayer CAGradientLayer CARelicatorLayer
我们逐个来学习:
一个不存在任何遮罩的图片效果:
- (void)viewDidLoad { [super viewDidLoad]; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cool.jpg"]]; imageView.frame = CGRectMake(0, 0, 300, 200); imageView.center = self.view.center; [self.view addSubview:imageView]; }
如果添加如下的矩形遮罩mask:
- (void)viewDidLoad { [super viewDidLoad]; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cool.jpg"]]; imageView.frame = CGRectMake(0, 0, 300, 200); imageView.center = self.view.center; [self.view addSubview:imageView]; CAShapeLayer* shape = [CAShapeLayer layer]; CGMutablePathRef ms = CGPathCreateMutable(); CGPathAddRect(ms, nil, CGRectInset(CGRectMake(0, 0, 300, 200), 50, 50)); shape.path = ms; shape.shadowOpacity = 1; shape.shadowRadius = 45; imageView.layer.mask = shape; }
效果:
如果添加圆形遮罩:
- (void)viewDidLoad { [super viewDidLoad]; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cool.jpg"]]; imageView.frame = CGRectMake(0, 0, 300, 200); imageView.center = self.view.center; [self.view addSubview:imageView]; CAShapeLayer* shape = [CAShapeLayer layer]; CGMutablePathRef ms = CGPathCreateMutable(); CGPathAddEllipseInRect(ms, nil, CGRectMake(0, 0, 300, 200)); shape.path = ms; shape.shadowOpacity = 1; shape.shadowRadius = 45; imageView.layer.mask = shape; }
效果:
效果不错吧?
我们来看看关于CAShapLayer的官方解释:
包括头文件的解释:
提到了几个关键的名次
路径对象:
CGMutablePathRef ms = CGPathCreateMutable();
光珊化:即类似阴影的边框效果
贝赛尔曲线:
好好看看这几篇就能掌握了
原理:
http://www.cnblogs.com/jay-dong/archive/2012/09/26/2704188.html
使用:
http://www.henishuo.com/uibezierpath-draw/ http://my.oschina.net/lanrenbar/blog/389379?fromerr=OtXb0JpL
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- C++获取本机MAC,IP,MASK地址的方法
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法