iOS QuartzCore - CALayer

在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层
@property(nonatomic,readonly,retain) CALayer *layer;
当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上。UIView之所以能够显示,完全是因为内部的CALayer对象
通过操作这个CALayer对象,可以很方便地调整UIView的一些界面属性,比如:阴影、圆角大小、边框宽度和颜色等

一、使用步骤
1.创建一个layer
CALayer *Mylayer=[CALayer layer];

2.设置layer的属性
Mylayer.bounds=CGRectMake(100, 100, 100, 100);
Mylayer.position=CGPointMake(100, 100);

3.设置需要显示的图片
Mylayer.contents=(id)[UIImage imageNamed:@”Image_Name”].CGImage;

4.设置圆角半径为10
Mylayer.cornerRadius=10;

5.如果设置了图片,那么需要设置这个属性为YES才能显示圆角效果
Mylayer.masksToBounds=YES;

6.设置边框
Mylayer.borderWidth=3;
Mylayer.borderColor=[UIColor brownColor].CGColor;

7.把layer添加到界面上
[self.view.layer addSublayer:Mylayer];

二、基本属性
CALayer有2个非常重要的属性:position和anchorPoint

@property CGPoint position;
用来设置CALayer在父层中的位置
以父层的左上角为原点(0, 0)

@property CGPoint anchorPoint;
称为“定位点”、“锚点”
决定着CALayer身上的哪个点会在position属性所指的位置
以自己的左上角为原点(0, 0)
它的x、y取值范围都是0~1,默认值为(0.5, 0.5)

三、代码示例

四、总结
UIView和CALayer对比
UIView 1.事件处理 2.位置变化 3.常用
CALayer 1.性能高 2.位置不变 3.不常用

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS开发中,可以使用多种框架来显示UI界面。其中最常用的是UIKit框架,它提供了创建和管理应用程序的用户界面的功能。\[3\]通过使用UIKit框架,开发者可以使用各种视图和控件来构建用户界面,例如按钮、标签、文本框等。此外,UIKit还提供了布局管理器来帮助开发者实现界面的自动布局和适配。\[1\] 除了UIKit框架,还有其他一些框架可以用于显示UI界面,例如QuartzCore框架可以提供动画特效和硬件渲染的能力,CoreGraphics框架提供了2D绘制的功能,CoreLocation框架可以使用GPS和WIFI获取位置信息,MapKit框架可以嵌入地图到应用程序中,AVFoundation框架可以进行音频处理。\[3\] 最近在WWDC 2019上,苹果发布了全新的SwiftUI框架,它可以帮助开发者更轻松地创建用户界面。SwiftUI使用声明式编程的方式,通过简洁的代码来描述界面的外观和行为。它支持Flex Box布局,可以使用PreviewProvider来提供预览数据,还支持简单的逻辑控制,如if语句。同时,SwiftUI与已有的Swift语法不冲突,可以与UIKit框架无缝集成。\[1\]\[2\] 因此,在iOS开发中,可以使用UIKit框架或者最新的SwiftUI框架来显示UI界面,具体选择取决于开发者的需求和偏好。 #### 引用[.reference_title] - *1* *2* [iOS Swift UI 绘制第一个UI界面](https://blog.csdn.net/WangQingLei0307/article/details/120664181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [iOS 之 UI界面和框架介绍](https://blog.csdn.net/yk_ddm/article/details/109190868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值