美文网首页
一、CALayer基础

一、CALayer基础

作者: faterman | 来源:发表于2018-01-26 12:01 被阅读10次

iOS坐标系详解
CALayer基础 By M了个J

在iOS系统中构建用户图形界面的内容一般都是UIView,比如按钮,文本标签,文本输入框,一个图标,这些其实都是UIView对应的子类。UIView之所以能显示在屏幕上,是因为内部有一个layer。iOS系统是以层为基本单位向屏幕来进行绘制的。

在创建UIView对象的时候,UIView内部会自动创建一个层(CALayer对象,可称之为root layer),通过UIView的layer属性可以访问到这个层。当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有的内容绘制到自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,最终完成UIView的显示。

Layer基本使用

1.设置阴影
imageView.layer.shadowColor  = [UIColor grayColor].CGColor;
imageView.layer.shadowOffset = CGSizeMake(10, 10);
imageView.layer.shadowOpacity = 0.5; 

shadowColor代表了层阴影的颜色。

shaowOffset代表了层阴影的偏移量,当前这种设置方式会向右下角偏移。

shaowOpcity代表了阴影的透明度,此处设置为半透明

阴影的绘制是在原来基础向外的

2.设置圆角
imageView.layer.cornerRadius = 10;
imageView.layer.masksToBounds = YES;

第一行设置的是圆角半径

第二行是内容根据外层mask,来显示

如果设置了masksToBounds = YES,此时阴影效果就不会出现了

3.设置边框和颜色
imageView.layer.borderWidth = 5;
imageView.layer.borderColor = [UIColor redColor].CGColor;

第一行设置边框宽度是5

第二行设置边框颜色为红色

边框绘制是向内绘制的

4.设置旋转
imageView.layer.transform = CATransform3DMakeRotation(M_PI_4, 0, 0, 1);

M_PI_4 表示旋转45度

后面的(0,0,1)表示这是个z轴向量

CATransform3D
CATransform3D 特效详解

创建Layer

UIView及其子类在创建时会有一个layer,这个默认的层是不允许重新创建的,但是可以在这个层上添加子层。

1.添加一个Layer
_myLayer = [CALayer layer];
// 设置层的宽度和高度(100x100)
_myLayer.bounds = CGRectMake(0, 0, 100, 100);
// 设置层的位置
_myLayer.position = CGPointMake(100, 100);
// 设置层的背景颜色:红色
_myLayer.backgroundColor = [UIColor redColor].CGColor;
// 设置层的圆角半径为10
_myLayer.cornerRadius = 10;
// 添加myLayer到控制器的view的layer中
[self.view.layer addSublayer:_myLayer];
2.创建一个显示图片的图层
_myLayer = [CALayer layer];
// 设置层的宽度和高度(100x100)
_myLayer.bounds = CGRectMake(0, 0, 100, 100);
// 设置层的位置
_myLayer.position = CGPointMake(100, 100);
// 设置层的背景颜色:红色
_myLayer.backgroundColor = [UIColor redColor].CGColor;
// 设置层的圆角半径为10
_myLayer.cornerRadius = 10;
_myLayer.contents = (id)[UIImage imageNamed:@"test.png"].CGImage;
[self.view.layer addSublayer:_myLayer];

相关文章

  • CALayer与UIView的区别

    CALayer与UIView的区别 基础 CALayer的定义 CALayer的基础 CALayer和UIView...

  • 一、CALayer基础

    iOS坐标系详解CALayer基础 By M了个J 在iOS系统中构建用户图形界面的内容一般都是UIView,比如...

  • Core Animation核心动画

    CALayer层(显示的基础)UIView核心显示功能就是依靠CALayer实现的如何获取一个CALayer对象1...

  • CALayer基础

    转载:http://www.jianshu.com/p/18c306333080 1.UIView与CALayer...

  • CALayer基础

    今天单纯说一下CALayer里面有的属性和方法。反正宗旨就是随意。打开CALayer定义文件: (id)prese...

  • iOS-CALayer (二)

    上一篇 : iOS-CALayer (一) 前言:上一篇主要记录有关 CALayer 的基础相关知识,本章主要描述...

  • CoreAnimation之变换

    CoreAnimation之CALayer基础 1. CGAffineTransform CGAffineTran...

  • CoreAnimation之隐式动画

    CoreAnimation之CALayer基础CoreAnimation之变换CoreAnimation之常用图层...

  • iOS CALayer 基础

    一、CALayer简介 Core Animation是跨平台的,支持iOS环境和Mac OS X环境凡是支持跨平台...

  • iOS CAAnimation笔记

    基础 layer的动画属性 CALayer拥有大量的属性,在CALayer的头文件中可以看到,会发现很多属性的注释...

网友评论

      本文标题:一、CALayer基础

      本文链接:https://www.haomeiwen.com/subject/xsuiaxtx.html