layer和3D仿射变换
1、视图的显示基于图层,通过控制图层同样能控制显示效果,获取当前的视图的layer,并为其增加圆角边框。
//设置layer边框的宽度为2
view.layer.borderWidth=;
//如果需要为layer添加颜色需要转换为CGColor对象
view.layer.borderColor=[UIColor greenColor].CGColor;
//将边框的圆角半径设置为10
view.layer.cornerRadius=;
2、通过layer设置视图的阴影
// 1 设置当前的阴影颜色
view.layer.shadowColor=[UIColor blackColor].CGColor;
// 2 设置当前凸出来的阴影,通过该方法来控制当前阴影凸出来的程度,从而达到所需要的效果
view.layer.shadowOffset=CGSizeMake(, );
// 3 设置当前的透明度
view.layer.shadowOpacity=0.5;
3、自定义layer
CALayer *layer=[CALayer layer];
layer.borderColor=[UIColor redColor].CGColor;
layer.borderWidth=;
layer.cornerRadius=;
layer.backgroundColor=[UIColor redColor].CGColor;
layer.bounds=CGRectMake(, , , );
//设置position控制当前位置
layer.position=CGPointMake(, );
//设置锚点用来控制position的位置,锚点的大小范围为0-1,可以理解为按照比例来定位图层的位置点,将该点定位到position属性所指的位置上去,这样通过两个属性便能很好的控制当前图层的位置
layer.anchorPoint=CGPointMake(, );
//将当前的图层增加到当前显示的图层
[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:@() forKeyPath:@"transform.translation.x"]; //沿着y方向平移100
[view.layersetValue:@() forKeyPath:@"transform.translation.y"]; //沿着z方向平移100
[view.layersetValue:@() forKeyPath:@"transform.translation.z"];
2、旋转
2.1、旋转有四个参数,第一个为旋转的角度,为弧度表示,后面三个值分别对应三个轴,可以设置围绕不同轴旋转
x:沿着X轴方向旋转,值范围-1 和1之间
y:沿着Y轴方向旋转,值范围-1和1之间
z:沿着Z轴方向旋转,值范围-1和1之间
[UIView animateWithDuration: animations:^{
view.layer.transform=CATransform3DMakeRotation(M_PI, , , -);
}];
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.5, );
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仿射变换的更多相关文章
- 3D几何变换
3D点:非齐次坐标x(x,y,z) (x表示向量矢量) 齐次坐标:x~=(x~,y~,z~,w~)=w~(x,y,z,1)=w~x~ 增广矢量:x—=(x,y,z,1) w~=0时,齐 ...
- 视频特效制作:如何给视频添加边框、水印、动画以及3D效果
2014-12-08 09:47 编辑: suiling 分类:iOS开发 来源:叶孤城的blog 招聘信息: iOS手机软件开发工程师 iOS工程师 Web后端高级开发工程师 iOS软件工程师 ja ...
- 【CSS3练习】3D盒子制作
先发个3D盒子最终效果图 在线效果预览:http://dtdxrk.github.io/game/css3-demo/box-3d.html 制作步骤1:创建基本结构 分布把6个面定义到3×3的画布上 ...
- iOS之CALayer属性简介
/* CoreAnimation - CALayer.h Copyright (c) 2006-2017, Apple Inc. All rights reserved. */ #import < ...
- [zz]The Royal Treatment
http://www.cgw.com/Publications/CGW/2012/Volume-35-Issue-4-June-July-2012/The-Royal-Treatment.aspx T ...
- CALayer的分析
转载地址: http://my.oschina.net/u/2340880/blog/536048 iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CAL ...
- Javascript高性能动画与页面渲染
转自:http://www.infoq.com/cn/articles/javascript-high-performance-animation-and-page-rendering No setT ...
- iOS开发——UI篇OC&transform详解
transframe属性详解 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建“基 ...
- Android图形合成和显示系统---基于高通MSM8k MDP4平台
介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台. 做为Android Display专题.SurfaceFlinger的详细介绍 ...
随机推荐
- c#/asp.net实现炫酷仿调色板/颜色选择器功能
asp.net 之颜色选择器,仿调色板功能 1. 插件非常容易使用,只需引用相应的js文件和css样式文件即可,见代码示例,插件精小,炫酷 2. 只需要初始化即可使用,并且选择的颜色会在文本框中以16 ...
- Python168的学习笔记4
关于普通文本文件的读写 python2.7中,未注明的字符都是以acsii来编码的,而要让字符能够通用,必须声明为unicode. s=u'你好',s.encode('utf8')就是指用utf8来进 ...
- MySQL规约(阿里巴巴)
建表规约 [强制]表达是与否概念的字段,必须使用 is _ xxx 的方式命名,数据类型是 unsigned tinyint ( 1 表示是,0 表示否 ) ,此规则同样适用于 odps 建表. 说明 ...
- python开发_thread_线程基础
说到线程,我们要知道啥是串行,啥是并行程序 举个例子: 串行程序,就是一个一个的执行程序 #python threading import time ''' 每一秒中,输出:this is a dem ...
- Codeforces Round #358 (Div. 2) A. Alyona and Numbers 水题
A. Alyona and Numbers 题目连接: http://www.codeforces.com/contest/682/problem/A Description After finish ...
- Educational Codeforces Round 13 E. Another Sith Tournament 状压dp
E. Another Sith Tournament 题目连接: http://www.codeforces.com/contest/678/problem/E Description The rul ...
- LogStash日志分析系统
简介 通常日志管理是逐渐崩溃的——当日志对于人们最重要的时候,也就是出现问题的时候,这个渐进的过程就开始了.日志管理一般会经历一下3个阶段: 初级管理员将通过一些传统工具(如cat.tail.sed. ...
- JDK篇
卸载系统自带的jdk 使用以下命令查看是否已经安装了jdk rpm -qa|grep java rpm -qa|grep jdk 如果已经安装了可能会得到下面的结果: java-1.4.2-gcj ...
- windows命令行快捷操作
net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user: ...
- Node.js modules you should know about: request
Hey everyone! This is the fourth post in my new node.js modules you should know about article series ...