layer和3D仿射变换
来源:互联网 发布:银行模拟教学软件 编辑:程序博客网 时间:2024/04/30 06:44
1、视图的显示基于图层,通过控制图层同样能控制显示效果,获取当前的视图的layer,并为其增加圆角边框。
//设置layer边框的宽度为2 view.layer.borderWidth=2; //如果需要为layer添加颜色需要转换为CGColor对象 view.layer.borderColor=[UIColor greenColor].CGColor; //将边框的圆角半径设置为10 view.layer.cornerRadius=10;
2、通过layer设置视图的阴影
// 1 设置当前的阴影颜色 view.layer.shadowColor=[UIColor blackColor].CGColor; // 2 设置当前凸出来的阴影,通过该方法来控制当前阴影凸出来的程度,从而达到所需要的效果 view.layer.shadowOffset=CGSizeMake(5, 5); // 3 设置当前的透明度view.layer.shadowOpacity=0.5;
3、自定义layer
CALayer *layer=[CALayer layer]; layer.borderColor=[UIColor redColor].CGColor; layer.borderWidth=2; layer.cornerRadius=10; layer.backgroundColor=[UIColor redColor].CGColor;layer.bounds=CGRectMake(0, 0, 200, 100); //设置position控制当前位置layer.position=CGPointMake(100, 100);//设置锚点用来控制position的位置,锚点的大小范围为0-1,可以理解为按照比例来定位图层的位置点,将该点定位到position属性所指的位置上去,这样通过两个属性便能很好的控制当前图层的位置layer.anchorPoint=CGPointMake(0, 0);//将当前的图层增加到当前显示的图层 [self.view.layer addSublayer:layer];
4、layer 3D仿射变换
1、平移
1.1、3D平移分为X Y Z 三维,分别设置数值会沿着设置的方向平移
t1:X轴偏移位置,往下为正数。
t2:Y轴偏移位置,往右为正数。
t3:Z轴偏移位置,往外为正数。
NSValue * nav=[NSValue valueWithCATransform3D: CATransform3DMakeTranslation(t1, t2, t3)];[view.layer setValue:nav forKey:@"transform"];
1.2、通过KVC赋值,如下表格所示
//沿着x方向平移100[view.layersetValue:@(100) forKeyPath:@"transform.translation.x"];//沿着y方向平移100[view.layersetValue:@(100) forKeyPath:@"transform.translation.y"];//沿着z方向平移100[view.layersetValue:@(100) forKeyPath:@"transform.translation.z"];
2、旋转
2.1、旋转有四个参数,第一个为旋转的角度,为弧度表示,后面三个值分别对应三个轴,可以设置围绕不同轴旋转
x:沿着X轴方向旋转,值范围-1 和1之间
y:沿着Y轴方向旋转,值范围-1和1之间
z:沿着Z轴方向旋转,值范围-1和1之间
[UIView animateWithDuration:1 animations:^{ view.layer.transform=CATransform3DMakeRotation(M_PI, 0, 0, -1); }];
2.2、通过KVC赋值
//沿着z轴旋转[view.layer setValue:@(M_PI_2) forKeyPath:@"transform.rotation.z"];//沿着x轴旋转[view.layer setValue:@(M_PI_2) forKeyPath:@"transform.rotation.x"];
3、缩放
3.1、三个参数分别为沿着每个轴缩放的倍数,顺序依次为 X Y Z三维。
view.layer.transform=CATransform3DMakeScale(1, 1.5, 1);
3.2、通过KVC赋值
//沿着x轴方向放大1.5倍数[view.layer setValue:@(1.5)forKeyPath:@"transform.scale.x"];//沿着y轴方向放大1.5倍数[view.layer setValue:@(1.5)forKeyPath:@"transform.scale.y"];//沿着z轴方向放大1.5倍数[view.layer setValue:@(1.5)forKeyPath:@"transform.scale.z"];
作者:杰瑞教育
出处:http://blog.csdn.net/jerehedu
本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://blog.csdn.net/jerehedu
本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
0 0
- layer和3D仿射变换
- 【深入iOS开发】iOS仿射变换和3D变换
- 保距变换和仿射变换
- 仿射变换和透视变换
- 仿射变换和透视变换
- 透视变换和仿射变换
- 仿射变换和射影变换
- 仿射变换和透射变换
- 线性变换和仿射变换
- 3d变换和动画
- Opencv——仿射变换和透视变换
- 关于仿射变换和透视变换的终极解释
- 透视变换和仿射变换(下)
- 图像处理的仿射变换和透视变换
- Opencv学习——仿射变换和透视变换
- 图像处理的仿射变换和透视变换
- 仿射变换和仿射线性群
- 仿射变换&透视变换
- [VS] error LNK2001: 无法解析的外部符号 __imp__FindWindowA@8
- 创建 Win32 应用程序 (C++)
- Java 核心类库中的一些设计模式
- Node.js知识
- android ndk 使用log
- layer和3D仿射变换
- 软件架构经典书籍
- Centos下 Apache、php、mysql默认安装路径
- 【LeetCode】15. 3Sum
- Android 广播大全 Intent Action 事件
- 黄斤德:综述美国经济局部疲软、总体依旧热似朝阳
- 【学习ARToolkit小记之二】 videoTest.exe/simpleTest.exe运行出错停止的解决方法
- windows下androidNDK环境配置
- c++计时器