1、视图的显示基于图层,通过控制图层同样能控制显示效果,获取当前的视图的layer,并为其增加圆角边框。

  //设置layer边框的宽度为2view.layer.borderWidth=2;//如果需要为layer添加颜色需要转换为CGColor对象view.layer.borderColor=[UIColor greenColor].CGColor;//将边框的圆角半径设置为10view.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://www.cnblogs.com/jerehedu/ 
本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

layer和3D仿射变换相关推荐

  1. AD Keepout layer在3D视图中显示过孔、穿层

    1.先按P-U放置一个圆. 2.选中该圆.然后按快捷键T-V-T,点击圆中间会有一层透明层. 3.然后双击改透明圆.然后出现以下框框. 4.然后选择Board cutout.这样就完成了. 5.下面就 ...

  2. 2、计算机图形学——3D变换

    1.1.3D点和向量的齐次坐标表示 根据1中的第二部分齐次坐标可知,3D点的齐次坐标可表示为 1.2.3D仿射变换的一般形式 根据1中的第三部分变换的组合可知,3D点的仿射变换的齐次坐标方程可表示为 ...

  3. 视频中的3D人体姿态估计(3D human pose estimation in vide)--------Facebook research: VideoPose3D

    视频中的3D人体姿态估计(3D human pose estimation in video) 解读Facebook AI Research in CVPR2019: <3D human pos ...

  4. GANerated Hands for Real-Time 3D Hand Tracking from Monocular RGB

    GANerated Hands for Real-Time 3D Hand Tracking from Monocular RGB (适用于单目RGB的实时三维手部跟踪) Franziska Muel ...

  5. 论文阅读:Volumetric and Multi-View CNNs for Object Classification on 3D Data

    Preface   最近由于要做正颌手术中术后变形预测的问题,要处理三维数据,所以在研究三维卷积,三维分类的问题.   今天阅读一篇CVPR2016的论文:<Volumetric and Mul ...

  6. 国内外3D游戏开发流程和职位分类

    国内外3D游戏开发流程和职位分类 分类: 网游相关2010-07-04 21:11 851人阅读 评论(0) 收藏 举报 国内3D游戏开发流程 开发团队 n 制作人 n 执行制作人 n 策划团队 n ...

  7. 使用openlayers的扩展插件实现矢量图层的3D渲染

    实现openLayers二维地图上的矢量图层的3D效果 openLayers简介 openlayers是一个用于开发WebGIS的客户端的JavaScript包,主要负责GIS数据的展示和交互.在操作 ...

  8. css3设计动态立体盒子,【CSS3练习】3D盒子制作

    先发个3D盒子最终效果图 制作步骤1:创建基本结构 分布把6个面定义到3×3的画布上,1和4暂且是重叠的. html结构比较简单: 1 2 3 4 5 6 CSS部分: *{margin:0;padd ...

  9. 视频特效制作:如何给视频添加边框、水印、动画以及3D效果

    from : http://www.cocoachina.com/ios/20141208/10542.html 本文内容来自raywenderlich的这篇文章的翻译:AVFoundation Tu ...

最新文章

  1. oracle19c数据库清理,Oracle 19c集群重装
  2. Java查询spark中生成的文件_java+spark-sql查询excel
  3. BZOJ 3329 Xorequ (数位DP、矩阵乘法)
  4. 定时任务---SpringBoot
  5. ADODB.Stream 错误 '800a0bbc' 写入文件失败
  6. linux内存利用率多少合适,如何理解linux服务器中的内存使用率和平均负载
  7. 谈谈软件的开发及成长历程
  8. 【Flink】flink并行度与kafka分区(partition)设置
  9. Android学习笔记(十七)——使用意图调用内置应用程序
  10. SQL Server 中的嵌套事务与@@TranCount(转)
  11. Unity中 创建射线的两种方法
  12. HFSS19 官方中文教程系列 L02
  13. 关于NI CompactRIO自定义模块中FPGA与Labview FPGA中编程的一点理解
  14. 使用计算机时鼠标和键盘各有什么优缺点,计算机键盘与鼠标的使用简介.ppt
  15. amoeba-mysql主从复制配置
  16. CentOS7.5下载及安装过程
  17. 达人评测 r7 7840HS和i5 1340p选哪个 锐龙r77840HS和酷睿i51340p对比
  18. java迭代法求圆周率用梯形_常用的圆周率计算公式
  19. H5页面展示丨网页三维展示丨产品3D展示原理【商迪3D】
  20. [nginx代理配置][nginx proxy_pass][nginx从一台服务器代理到另外一台服务器,浏览器地址不改变]

热门文章

  1. Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目
  2. UIView之常用方法
  3. DOMContentLoaded与interactive
  4. Ajax 的乱码问题(2)
  5. python 清屏_Python学前准备如果你知道要去哪,那么全世界都给你让路
  6. 雷鸟html签名设置,thunderbird 使用OpenPGP加解密邮件
  7. python io操作需要用到什么硬件_Python I/O 操作(一)
  8. 等待因该出现在while循环中,防止虚假唤醒
  9. 处理器的用户态和核心态
  10. 数据库计算机报告,外文数据库计算机检索报告实例.pdf