关于CALayer及其和UIView的区别与选择

本文详细介绍了iOS开发中UIView与CALayer的关系及其使用方式。涵盖了不同框架中颜色与图像类型的定义,以及如何设置视图的位置和大小。此外还讨论了UIView与CALayer之间的转换机制,以及阴影效果的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先:
CALayer是定义在QuartzCore框架中的
CGImageRefCGColorRef两种数据类型是定义在CoreGraphics框架中的
UIColorUIImage是定义在UIKit框架中的

其次:
QuartzCore
框架和CoreGraphics框架是可以跨平台使用的,在iOSMac OS X上都能使用(C 语言编写)
但是UIKit只能在iOS中使用(Objective-C

为了保证可移植性,QuartzCore不能使用UIImageUIColor,只能使用CGImageRefCGColorRef
导入其他框架的方式:选中项目, General中找 Linked Frameworks and Libraries添加对应的框架


设置一个控件的位置和大小有两种方式:
1.直接设置frame
2.设置bounds和center


设置UIView的背景颜色和透明度,底层都是操作的图层layer的背景颜色和透明度。
设置layer的位置时设置其position属性,设置UIView的center底层调用的是其所在layer的position。

确定layer的位置由position和anchorPoint两个属性决定,将anchorPoint对应到父控件的position点上。


隐式动画:非rootLayer即自己手动创建的layer才具有隐式动画的属性。Animatable properties。每一个UIView内部都默认关联着一个CALayer,称这个Layer为RootLayer。

UIView本身不具备显示的功能,是因为它内部的层layer才有显示功能:



关于UIView和CALayer的选择:



要显示layer阴影,阴影的颜色、宽度、偏移量缺一不可。阴影模糊度shadowRadius
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值