绝对干货 CALayer几点实际用法
2014-10-08 22:21
113 查看
应该来说CALayer是一个比较底层的类,每一个UIView里面封装有一个UILayer的属性(其实我们点击UIView进去也可以看见这个属性)。在使用前需要导入QuartzCore框架,然后再需要设置CALayer的地方引用头文件QuartzCore.h。
一.简单UIView处理
接下来就介绍下它常用的几个地方:
1)圆角:
2)边框:
3)阴影:
二.对于层次较多的处理。
上面三个方法简单粗暴,直接解决问题。
那是不是有了这个就可以设置所有圆角,边框或者阴影了呢?
接下来我们来看另外一种实例,平时难免遇见的就是对 图片的圆角处理,我们尝试着使用上面的第一条来对图片进行处理。
1)设置图片圆角
这样看来是不是就会出现我们上面所说的情况呢?是不是图片就会圆角处理呢?
如果你亲自代码尝试后,就会奇怪的发现不是这样的,图片依旧是原样。那么这是什么原因呢?
原因就在于imageView图层不止有一个,我们尽管对该layer进行了设置圆角,其实仅仅对父图层进行了处理,但是上面的图片还是没有处理。这个时候就需要引入我们iOS中一个专业术语叫做“遮罩”。可以看下面代码
2)设置图片边框
跟上面设置圆角一样,能够正常显示。
3)设置图片阴影
我们会发觉这个时候,尽管我们设置了“遮罩”,但是依旧没有阴影。
但是假如我们将这个“遮罩”注释掉后,图片阴影出现了。
经过查看资料,发现其实这一点是苹果处理比较不完美的地方,这样就使得我们在使用的时候,需要在阴影以及圆角之间进行取舍,究竟使用阴影呢还是使用圆角呢?当然这个根据客户需求来。假如客户既想实现圆角又要阴影的话,我们只能跟UI设计师进行合作了。
三.如何用CALayer来设置形变
这里的形变指的是UIView的变化,比如imagev的放大缩小,旋转等等。
这点的学习可以加深我们的动画内容理解。
直接上代码:
这里就可以实现imageView形变。
我们还可以使用KVC幅值的原理来进行设置:
依旧能够正常实现。这里可以体现出KVC 的高大尚了吧。
这就是CALayer的一点干货知识,如果有其他观点,还望各位看官指正。
一.简单UIView处理
接下来就介绍下它常用的几个地方:
1)圆角:
2)边框:
3)阴影:
二.对于层次较多的处理。
上面三个方法简单粗暴,直接解决问题。
那是不是有了这个就可以设置所有圆角,边框或者阴影了呢?
接下来我们来看另外一种实例,平时难免遇见的就是对 图片的圆角处理,我们尝试着使用上面的第一条来对图片进行处理。
1)设置图片圆角
这样看来是不是就会出现我们上面所说的情况呢?是不是图片就会圆角处理呢?
如果你亲自代码尝试后,就会奇怪的发现不是这样的,图片依旧是原样。那么这是什么原因呢?
原因就在于imageView图层不止有一个,我们尽管对该layer进行了设置圆角,其实仅仅对父图层进行了处理,但是上面的图片还是没有处理。这个时候就需要引入我们iOS中一个专业术语叫做“遮罩”。可以看下面代码
[imageView.layer setMasksToBounds:YES];这个时候如果再来观察,就会发现我们的图片已经圆角了。这个“遮罩”起的作用就是让所有视图随着俯视图的layer变化而变化。
2)设置图片边框
跟上面设置圆角一样,能够正常显示。
3)设置图片阴影
我们会发觉这个时候,尽管我们设置了“遮罩”,但是依旧没有阴影。
但是假如我们将这个“遮罩”注释掉后,图片阴影出现了。
经过查看资料,发现其实这一点是苹果处理比较不完美的地方,这样就使得我们在使用的时候,需要在阴影以及圆角之间进行取舍,究竟使用阴影呢还是使用圆角呢?当然这个根据客户需求来。假如客户既想实现圆角又要阴影的话,我们只能跟UI设计师进行合作了。
三.如何用CALayer来设置形变
这里的形变指的是UIView的变化,比如imagev的放大缩小,旋转等等。
这点的学习可以加深我们的动画内容理解。
直接上代码:
这里就可以实现imageView形变。
我们还可以使用KVC幅值的原理来进行设置:
依旧能够正常实现。这里可以体现出KVC 的高大尚了吧。
这就是CALayer的一点干货知识,如果有其他观点,还望各位看官指正。
相关文章推荐
- 干货:pkg-config工具在实际工程中的用法
- Nuget工具的安装和实际项目基本用法
- DIV CSS布局中绝对定位和浮动用法
- const的几点用法
- const几点相当重要的用法
- ACM中关于memset的用法几点
- HTML的a标签href属性指定相对路径与绝对路径的用法讲解
- httpclient 4 使用 几点用法(模拟表单)
- 图解DIV-CSS布局中绝对定位和浮动用法(两种分三栏布局的方法)
- 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件
- 小甲鱼零基础入门学习Python(绝对干货,值得学习)
- 我是怎么利用微信月收入三万以上的!(绝对的干货来袭!)
- Linux命令之find在实际项目中的用法
- duilib各种布局的作用,相对布局与绝对布局的的意义与用法
- ref和out实际用法
- find与xargs得用法------实际例子(转)
- VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)
- C# List的几点用法
- NSSet NSArray的区别 实际用法 IOS
- C/C++ typedef用法详解(干货)