ios开发之图层与核心动画一:图层CALayer的认识




#import "ViewController.h" @interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *redView;
@property (weak, nonatomic) IBOutlet UIImageView *imageV; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
} -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //设置阴影的颜色
self.imageV.layer.shadowColor = [UIColor blueColor].CGColor;
//设置阴影的不透明度:0为完全透明,1为不透明
self.imageV.layer.shadowOpacity = ;
//设置阴影偏移量宽高偏移,正数则向右向下平移
self.imageV.layer.shadowOffset = CGSizeMake(, );
//设置阴影的模糊的半径
self.imageV.layer.shadowRadius = ; //边框宽度,往里边走的.
self.imageV.layer.borderWidth = ;
self.imageV.layer.borderColor = [UIColor greenColor].CGColor; /**
* 1:image并不是在layear的图层上,而是在layear的contents上,设置圆角效果是在layear层,并不会影响到contents上的image,要想layer图层和contents有联系,则必须设置self.imageV.layer.masksToBounds,也就是把超过根层也就是layear层的部分裁减掉,所以imageView要设置圆角效果必须加上self.imageV.layer.masksToBounds,而UIView可以不用设置
2:设置圆形效果:就让UIimageview的圆角cornerRadius等于UIimageview宽度的一半
*/
//设置圆角
self.imageV.layer.cornerRadius = ;
//把超过根层以外的东西都给裁剪掉(UIview自带的层,我们称它是根层)
self.imageV.layer.masksToBounds = YES; NSLog(@"%@",self.imageV.layer.contents); } - (void)UIViewLayer {
//设置阴影的颜色
self.redView.layer.shadowColor = [UIColor blueColor].CGColor;
//设置阴影的不透明度
self.redView.layer.shadowOpacity = ;
self.redView.layer.shadowOffset = CGSizeMake(-, -);
//设置阴影的模糊的半径
self.redView.layer.shadowRadius = ; //边框宽度,往里边走的.
self.redView.layer.borderWidth = ;
self.redView.layer.borderColor = [UIColor greenColor].CGColor; //设置圆角
self.redView.layer.cornerRadius = ;
} @end
1.CALayer简介:
CALayer我们又称它叫做层.
在每个UIView内部都有一个layer这样一个属性.
UIView之所以能够显示,就是因为它里面有这个一个层,才具有显示的功能.
我们通过操作CALayer对象,可以很方便地调整UIView的一些外观属性.
可以给UIView设置阴影,圆角,边框等等...
2.操作layer改变UIView外观.
2.1.设置阴影
默认图层是有阴影的, 只不过,是透明的
_RedView.layer.shadowOpacity = 1;
设置阴影的圆角
_RedView.layer.shadowRadius =10;
设置阴影的颜色,把UIKit转换成CoreGraphics框架,用.CG开头
_RedView.layer.shadowColor = [UIColor blueColor].CGColor;
2.2.设置边框
设置图层边框,在图层中使用CoreGraphics的CGColorRef
_RedView.layer.borderColor = [UIColor whiteColor].CGColor;
_RedView.layer.borderWidth = 2;
2.3.设置圆角
图层的圆角半径,圆角半径为宽度的一半, 就是一个圆
_RedView.layer.cornerRadius = 50;
3.操作layer改变UIImageView的外观.
设置图形边框
_imageView.layer.borderWidth = 2;
_imageView.layer.borderColor = [UIColor whiteColor].CGColor;
设置图片的圆角半径
_imageView.layer.cornerRadius = 50;
裁剪,超出裁剪区域的部分全部裁剪掉
_imageView.layer.masksToBounds = YES;
注意:UIImageView当中Image并不是直接添加在层上面的.这是添加在layer当中的contents里.
我们设置层的所有属性它只作用在层上面.对contents里面的东西并不起作用.所以我们看不到图片有圆角的效果.
想要让图片有圆角的效果.可以把masksToBounds这个属性设为YES,
当设为YES,把就会把超过根层以外的东西都给裁剪掉.
ios开发之图层与核心动画一:图层CALayer的认识的更多相关文章
- iOS核心动画高级技巧之CALayer(一)
iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...
- 图层的核心动画(CABaseAnimation)
Main.storyboard // // ViewController.m // 7A14.图层的核心动画 // // Created by huan on 16/2/4. // Copyr ...
- [iOS UI进阶 - 6.1] 核心动画CoreAnimation
A.基本知识 1.概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对 ...
- 图层的核心动画(CABaseAnimation)续
Main.storyboard ViewController.m // // ViewController.m // 8A01.核心动画 // // Created by huan on 16/ ...
- iOS开发笔记10:圆点缩放动画、强制更新、远程推送加语音提醒及UIView截屏
1.使用CAReplicatorLayer制作等待动画 CALayer+CABasicAnimation可以制作很多简单的动画效果,之前的博客中介绍的“两个动画”,一个是利用一张渐变色图片+CABas ...
- 【Swift】IOS开发中自定义转场动画
在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器 ...
- IOS第18天(9,核心动画-动画组)
****动画组 // 核心动画都是假象,不能改变layer的真实属性的值// 展示的位置和实际的位置不同.实际位置永远在最开始位置 #import "HMViewController.h&q ...
- [iOS UI进阶 - 6.2] 核心动画CoreAnimation 练习代码
A.基本用法 1.CABasicAnimation // // ViewController.m // CoreAnimationTest // // Created by hellovoidworl ...
- iOS UI进阶-3.0 核心动画
Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架<Quar ...
随机推荐
- 用for和while循环求e的值[e=1+1/1!+1/2!+1/3!+1/4!+1/5!+...+1/n!]
/*编敲代码,依据下面公式求e的值. 要求用两种方法计算: 1)for循环.计算前50项 2)while循环,直至最后一项的值小于10-4 e=1+1/1!+1/2!+1/3!+1/4!+1/5!+. ...
- 3.SOAP和WSDL的一些必要知识
转自:https://www.cnblogs.com/JeffreySun/archive/2009/12/14/1623766.html SOAP和WSDL对Web Service.WCF进行深入了 ...
- vim学习4
分频 参考 http://coolshell.cn/articles/1679.htm
- 业余学习react 学习记录
http://www.ruanyifeng.com/blog/2015/03/react (阮一峰 react 学习) 1.搭建环境:npm 使用 React npm install -g cnpm ...
- C++ 学习路线推荐
相信有非常大一部分学计算机的童鞋都是靠自学,即使本身是计算机专业的同学,也会认为只通过课堂上的学习是远远不够的,并且在上课时所用到的教材也不够好.然而自学的时候有个非常大的问题就是找不到合适的 ...
- 【程序猿笔试面试复习】之中的一个 网络与通信篇(一) 几大网络模型:OSI、TCP/IP、B/S与C/S、MVC结构
9.1网络模型 9.1.1. OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型称为开放式网络互联參考模型.其为国际标准组织指定的一个指导信息互 ...
- cv2.putText 文字换行('\n')无法解析换行
OpenCV putText() new line character cv2.putText 在向图像中添加文本信息时,如果在待添加的文本中含有换行转义符,一般它是无法正确处理的: cv2.putT ...
- bootstrap tab页
---恢复内容开始--- <!DOCTYPE html> <html> <head> <title>Bootstrap 实例</title> ...
- windows CE项目开发
软件列表 1.Windows mobile 设备中心 2.Microsoft visual Studio 2008 3.串口调试工具(sscom42.exe) 4.Wince 6.0模拟器 5.vir ...
- 洛谷 P1601 A+B Problem(高精)
P1601 A+B Problem(高精) 题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式 ...