码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发 - CALayer

时间:2015-12-30 00:05:11      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:

CALayer的基本使用

首先在界面上放一个UIView以及UIImageView,对应属性分别为yellowView和iconView,显示效果如下:(由于代码过于简单,这里不再给出)

技术分享

- 给yellowView添加边框

self.yellowView.layer.borderWidth = 10;

- 设置边框颜色,这里需要注意使用CGColor

self.yellowView.layer.borderColor = [[UIColor redColor] CGColor];

- 设置阴影

//阴影的颜色
self.yellowView.layer.shadowColor = [[UIColor blackColor] CGColor];
//阴影的偏差
self.yellowView.layer.shadowOffset = CGSizeMake(10, 10);
//阴影的不透明度
self.yellowView.layer.shadowOpacity = 1.0;

经过上面一些属性的设置,运行显示如下:

技术分享

接下来对iconView做一些设置,设置边框的操作同上

- 设置圆角以及阴影

//设置圆角
self.iconView.layer.cornerRadius = 10;
//超出主层范围的内容都剪掉
self.iconView.layer.masksToBounds = YES;
//设置阴影
self.iconView.layer.shadowColor = [[UIColor blackColor] CGColor];
self.iconView.layer.shadowOffset = CGSizeMake(10, 10);
self.iconView.layer.shadowOpacity = 1.0;

我们来看一下设置之后的运行效果:

技术分享

发现没有显示阴影,原因是masksToBounds属性,该属性值设为YES表示超出主层边界的地方裁剪掉,所以导致阴影显示不出来,但是如果我们把它设置为NO,就会发现虽然阴影出来了但是圆角效果无效,所以,要想达到既有阴影又有圆角效果只能另寻它法了,这边不做讨论。

技术分享

图像的3D效果

- 旋转

//旋转效果,第一个参数为旋转地角度,后面三个参数为空间坐标系的x,y,z,表示以该值向量所在轴为旋转轴进行旋转
self.iconView.layer.transform = CATransform3DMakeRotation(M_PI_4, 1,1, 0);

- 缩放

//缩放效果,宽度不变,高端变为原来的2倍
self.iconView.layer.transform = CATransform3DMakeScale(1, 2, 0);

- 移动

//移动效果,向右移动100个像素
self.iconView.layer.transform =CATransform3DMakeTranslation(100, 0, 0);

利用KVC的方式设置图像的3D属性

//将CATransform3D包装成NSValue类型
NSValue *transValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_4, 1,1, 0)];
//利用KVC的方式给self.iconView.layer的transform赋值
[self.iconView.layer setValue:transValue forKey:@"transform"];

KVC的方式此处给出上面的一个例子,其余的可以使用该方法的属性可以参考官方文档,下面给出官方文档对应的截图:

技术分享

技术分享

 

iOS开发 - CALayer

标签:

原文地址:http://www.cnblogs.com/mooney/p/5087427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!