#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的认识的更多相关文章

  1. iOS核心动画高级技巧之CALayer(一)

    iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...

  2. 图层的核心动画(CABaseAnimation)

    Main.storyboard // //  ViewController.m //  7A14.图层的核心动画 // //  Created by huan on 16/2/4. //  Copyr ...

  3. [iOS UI进阶 - 6.1] 核心动画CoreAnimation

    A.基本知识 1.概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对 ...

  4. 图层的核心动画(CABaseAnimation)续

    Main.storyboard ViewController.m // //  ViewController.m //  8A01.核心动画 // //  Created by huan on 16/ ...

  5. iOS开发笔记10:圆点缩放动画、强制更新、远程推送加语音提醒及UIView截屏

    1.使用CAReplicatorLayer制作等待动画 CALayer+CABasicAnimation可以制作很多简单的动画效果,之前的博客中介绍的“两个动画”,一个是利用一张渐变色图片+CABas ...

  6. 【Swift】IOS开发中自定义转场动画

    在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器 ...

  7. IOS第18天(9,核心动画-动画组)

    ****动画组 // 核心动画都是假象,不能改变layer的真实属性的值// 展示的位置和实际的位置不同.实际位置永远在最开始位置 #import "HMViewController.h&q ...

  8. [iOS UI进阶 - 6.2] 核心动画CoreAnimation 练习代码

    A.基本用法 1.CABasicAnimation // // ViewController.m // CoreAnimationTest // // Created by hellovoidworl ...

  9. iOS UI进阶-3.0 核心动画

    Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架<Quar ...

随机推荐

  1. [AngularFire] Angular File Uploads to Firebase Storage with Angular control value accessor

    The upload class will be used in the service layer. Notice it has a constructor for file attribute, ...

  2. Codeforces #258 Div.2 E Devu and Flowers

    大致题意: 从n个盒子里面取出s多花.每一个盒子里面的花都同样,而且每一个盒子里面花的多数为f[i],求取法总数. 解题思路: 我们知道假设n个盒子里面花的数量无限,那么取法总数为:C(s+n-1, ...

  3. Android图片处理——压缩、剪裁、圆角、保存

    点击查看原文 项目中用到的关于图片的处理 public class UtilPicture { public static final String IMAGE_UNSPECIFIED = " ...

  4. IIS下配置SilverLight

    在Windows 2003 IIS 6.0环境下  在Silverlight中需要使用xap.XAML文件类型,如果您想在IIS服务器上使用Silverlight 4.0程序,所以必须在IIS中注册  ...

  5. js 限制只能输入数字小数点

    function checkNum(e) { var re = /^\d+(?=\.{0,1}\d+$|$)/ if (e.value != "") { if (!re.test( ...

  6. NOI2018归程(Kruskal重构树)

    题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 n 个节点.m 条边的无向连通图(节点的编号从 1 至 n). 我们依次用 l,a 描述一条边的长度. ...

  7. 机房收费 &amp; 廊院食堂

    做机房收费系统时.常常想这个一般用户指的是谁?我当初以为是学生......可能是被数据库中的student带跑偏了...... 事实上把我们的系统联系一下实际,就会非常easy想到一般用户指的是谁的位 ...

  8. 强大的xUtils工具类整理

    xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,很多其它的事件注解支持且不受 ...

  9. Spring Boot使用模板freemarker【从零开始学Spring Boot(转)

    视频&交流平台: à SpringBoot网易云课堂视频 http://study.163.com/course/introduction.htm?courseId=1004329008 à  ...

  10. hdu2049(组合数学)

    题意:每位新娘打扮得差点儿一模一样,并盖上大大的红盖头随机坐成一排;然后,让各位新郎寻找自己的新娘.每人仅仅准找一个,而且不同意多人找一个.最后,揭开盖头,如果找错了对象就要当众跪搓衣板...如果一共 ...