CALayer创建图层(转)
一.添加一个图层
添加图层的步骤:
1.创建layer
2.设置layer的属性(设置了颜色,bounds才能显示出来)
3.将layer添加到界面上(控制器view的layer上)
@interface ViewController ()
@property(nonatomic,strong) UIView *customView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
/** 1.创建一个layer **/
//使用对象方法创建
//CALayer *layer = [[CALayer alloc] init];
//使用类方法创建
CALayer *layer = [CALayer layer];
/** 2.设置layer的属性 **/
layer.backgroundColor = [UIColor brownColor].CGColor;
layer.bounds = CGRectMake(,
,
,
);
layer.position = CGPointMake(, );
/** 3.把layer添加到界面上 **/
[self.view.layer addSublayer:layer];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
二.添加一个显示图片的图层
@interface ViewController ()
@property(nonatomic,strong) UIView *customView;
@end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
//创建一个layer
CALayer *layer = [CALayer layer];
//设置layer的属性
layer.bounds = CGRectMake(,,,);
layer.position = CGPointMake(, );
//设置需要显示的图片
layer.contents = (id)[UIImage imageNamed:@"logo.jpg"].CGImage;
//设置圆角半径为10
layer.cornerRadius = ;
//如果设置了图片,那么需要设置这个属性YES才能显示圆角效果
layer.masksToBounds = YES;
//设置边框
layer.borderWidth = ;
layer.borderColor = [UIColor brownColor].CGColor;
[self.view.layer addSublayer:layer];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
} @end
三.CGColorRef和CGImageRef数据类型
简单说明CALayer是定义在QuartzCore框架中的。CGImageRef, CGColorRef两种数据类型是定义在CoreGraphics框架中的。UIColor,UIImage是定义在UIKit框架中的。
其次,QuartzCore框架和CoreGraphics框架是可以跨平台使用的,在iOS和Mac OS X上都能使用,但是UIKit只能在iOS中使用。
因此,为了保证可移植性,QuartzCore不能使用UIImage,UIColor,只能使用CGImageRef,CGColorRef。
不过很多情况下,可以通过UIKit对象的特定方法,得到CoreGraphics对象,比如UIImage的CGImage方法可以返回一个CGImageRef。
四.UIView和CALayer的选择
可以发现,前面的2个效果不仅可以通过添加层来实现,还可以通过添加UIView来实现。既然CALayer和UIView都能实现相同的显示效果,那究竟该选择谁好呢?
其次,对比CALayer,UIView多了一个事件处理的功能。也就是说,CALayer不能处理用户的触摸事件,而UIView可以。
所以,在选择的过程中,需要考虑到实际的情况,如果显示出来的东西需要跟用户进行交互的话,用UIView;如果不需要跟用户进行交互,用UIView或者CALayer都可以。
当然,CALayer的性能会高一些,因为它少了事件处理的能力,更加轻量级。
CALayer创建图层(转)的更多相关文章
- iOS开发UI篇—CAlayer(创建图层)
iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控 ...
- iOS - CALayer 绘图层
1.CALayer 绘图层 在 iOS 系统中,你能看得见摸得着的东西基本上都是 UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是 UIView.其实 UIView 之 ...
- ArcGIS api for javascript——明确的创建图层列表
描述 本例展示了如何确切地创建一个地图服务里的图层列表.这个列表由HTML checkboxe组成,可用用于开关图层的可见性. 函数updateLayerVisibility()包含开关图层的逻辑.函 ...
- ArcGIS api for javascript——动态创建图层列表
描述 本例循环地图服务里的所有图层并增加每个图层到一个带checkbox的列表,checkbox能设置图层的显示或隐藏.动态创建列表的优势是所有的图层都会包含在列表中,即使服务器管理员删除或增加了图层 ...
- gimp怎么移动选取中的图像并创建图层
gimp怎么移动选取中的图像并创建图层 https://jingyan.baidu.com/article/414eccf6bf4d6e6b431f0a3b.html 听语音 原创 | 浏览:1148 ...
- NX二次开发-UFUN创建图层类别UF_LAYER_create_category
NX11+VS2013 #include <uf.h> #include <uf_layer.h> UF_initialize(); //创建图层类别 UF_LAYER_cat ...
- IOS第18天(2,CALayer自定义图层)
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- [iOS Animation]-CALayer 专用图层
专用图层 复杂的组织都是专门化的 Catharine R. Stimpson 到目前为止,我们已经探讨过CALayer类了,同时我们也了解到了一些非常有用的绘图和动画功能.但是Core Animati ...
- 12.22笔记(关于CALayer//Attributes//CALayer绘制图层//CALayer代理绘图//CALayer动画属性//CALayer自定义子图层//绘图pdf文件//绘图渐变效果)
12.22笔记 pdf下载文件:https://www.evernote.com/shard/s227/sh/f81ba498-41aa-443b-81c1-9b569fcc34c5/f033b89a ...
随机推荐
- sql 行列转换
create table #test1(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int) insert into #test1 valu ...
- git本地分支关联远程分支
问题描述: 从远程master克隆下来以后, 在本地创建wf_dev分支, 此时执行git pull 操作出现图中问题. 这是因为:本地的wf_dev分支还没有和远程的wf_dev进行关联. 执行: ...
- 亲测,很有效的忽略SSL证书方法
1.在httpclient发起请求时,有时会出现下面这种情况 你的日志中出现有关SSL的异常,javax.net.ssl.SSLPeerUnverifiedException: peer not au ...
- 【代码笔记】Java常识性基础补充(一)——赋值运算符、逻辑运算符、三元运算符、Scanner类、键盘输入、Random类、随机数
为什么要进行Java常识性基础补充? 之前学习Java语言,学得很多很杂,而且是很多不同的方面插入讲解的,比如在跟班上课,自学java编程例子,java语法,过了很久,因为各种原因长时间不怎么写,有时 ...
- html的标签(1)
首先补充上一次没有讲到的,html文件后缀名有2种,一种是.htm,一种是.html..html是老的教科书里面的文件后缀名,.html是新的教科书的文件后缀名..htm文件是不完整的支持html5的 ...
- XMLHttpRequest.responseType
"arraybuffer" "blob" "document" "json" "text"
- myeclipse 2014 闪退问题解决
1.删掉Workspace下面的 \.metadata\.plugins\org.eclipse.core.resources一整个文件夹 2.删掉Workspace 下面的 \.metadata\ ...
- SharePoint 2013 - Add-ins
1. App Web & Host Web The special website to which the app is deployed is called an App Web. The ...
- 最新一道面試題目,input: int[1,1,2,2,2,3,3,3],output [3,2,1],要求按照數字出現的次數從多到少排列元素。
面試當時沒有及時答出來,感覺當時在面試官的提示下跑偏了.想用兩個數組來mapping key和value然後對等排序,但是因為面試官讓用Array.sort而沒想好有什麼好辦法,結果可想而知.但是題目 ...
- GridView——标题行自适应单元格列宽与选中单元格变色
首先看效果图: 主要实现—— 1.前台GridView代码: <asp:GridView Height="100%" Width="98%" ID=&qu ...