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.单例 优点: 可以阻止其他对象实例化单例对象的副本,从而确保所有对象都访问唯一实例 缺点: 单例对象一旦建立,对象指针是保存在静态区的,单例对象在堆中分配的内存空间,会在应用程序终止后才 会被释放
新闻热点
疑难解答