OC笔记(3)

来源:互联网 发布:mac物理地址 编辑:程序博客网 时间:2024/05/02 04:27

1.关于CALayer
通过 CALayer,就能做出跟 UIView 一样的界面效果,既然 CALayer 和 UIView 都能实现相同的显示效果,那究 竟该选择谁好呢?
其实,对比 CALayer,UIView 多了一个事件处理的功能。也就是说,CALayer 不能处理用户的触摸事件,而 UIView 可以。
所以,如果显示出来的东西需要跟用户进行交互的话,用 UIView;如果不需要跟用户进行交互,用 UIView 或 者 CALayer 都可以。
当然,CALayer 的性能会高一些,因为它少了事件处理的功能,更加轻量级。

每一个 UIView 内部都默认关联着一个 CALayer,我们可用称这个 Layer 为 Root Layer(根层)。
所有的非 Root Layer,也就是手动创建的 CALayer 对象,都存在着隐式动画。
什么是隐式动画?
当对非 Root Layer 的部分属性进行修改时,默认会自动产生一些动画效果,而这些属性称为 Animatable Properties(可动画属性)。
几个常见的 Animatable Properties:
(1)bounds:用于设置 CALayer 的宽度和高度。修改这个属性会产生缩放动画 (2)backgroundColor:用于设置 CALayer 的背景色。修改这个属性会产生背景色的渐变动画 (3)position:用于设置 CALayer 的位置。修改这个属性会产生平移动画

2.核心动画(Core Animation)
核心动画的动画效果只是“假象”,产生动画的那个 view 实际上并未发生任何变化。
Core Animation 的动画执行过程都是在后台操作的,不会阻塞主线程

3.单例
优点:
可以阻止其他对象实例化单例对象的副本,从而确保所有对象都访问唯一实例
缺点:
单例对象一旦建立,对象指针是保存在静态区的,单例对象在堆中分配的内存空间,会在应用程序终止后才 会被释放

0 0