标签:
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的方式此处给出上面的一个例子,其余的可以使用该方法的属性可以参考官方文档,下面给出官方文档对应的截图:
标签:
原文地址:http://www.cnblogs.com/mooney/p/5087427.html