博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Core Animation和UIView(视图) 叨叨絮絮

Posted on 2013-01-30 17:42  酸梅拯救地球  阅读(179)  评论(0)    收藏  举报

1.commitAnimations类方法被调用后,讲动画发送到一个独立的和应用程序的主时间循环分离的线程中执行动画.

2.缺省情况下,当前运行的动画会执行完成.但setAnimationBeginsFromCurrentState:类方法传入YES会停止当前正在执行的动画,而使新动画在当前状态立刻执行.

3.关于隐藏视图  

  a.通过视图的hidden属性可以隐藏视图(会同时隐藏其内嵌的所有子视图).

  b.该试图仍然会保留在视图层次中,会参与自动尺寸调整好其他布局操作.

  c.如果被隐藏的视图是当前第一响应者,则该视图会自动放弃器响应者的状态,但是目标作为第一响应者的时间仍然会传递给隐藏视图.

4.关于图形和描画

  a.iPhone OS为创建高质量的图形提供了俩种途径:通过OpenGL经行渲染,或者通过Quartz,Core Animation,和UIkit经行渲染.

  b.OpenGL是一组基于C语言的接口,适用于uyouxi或者要求高帧率的应用程序.OpenGL ES是特别为嵌入式硬件系统设计的.

  c.Quartz,Core Animation,和UIkit才用了更为面向对象的编程接口.

5.视图描画周期

  a.UIView类使得内容更新简单高效.当视图的一部分需要重画时,UIView对象内置的描画代码会调用器的drawRect:方法,并向它传送一个包含需要重画的视图区域的矩形.

  b.首次描画视图时,UIView传递给drawRect:方法的矩形包含视图的全部可见区域.但在随后的调用中,改矩形只岱庙实际需要描画的部分.

  c.在调用drawRect:方法之后,视图会将自己标志为已更新,然后等待新的更新动作触发下一次更新周期.

  d.显示的更新视图内容 setNeedsDisplay 或setNeedDisplayInRect: .

  e.触发视图更新的动作有已下几种:

     对遮挡你的视图的其他视图进行移动或删除操作.

     改变视图的hidden属性

     将视图滚出屏幕,然后重新回到屏幕上.

     调用setNeedsDisplay 或setNeedDisplayInRect:

6.坐标和坐标变化

  a.当前转换矩形(CTM)是一个数学矩阵,用于将视图坐标系统上的点映射到设备的屏幕上.

  b.修改CTM 是在视图内容描画的标准技术,通过加入缩放,旋转,和转换因子来改变CTM,从而改变缺省坐标系统相对于潜在视图和窗口的尺寸,方向,和位子.

7.图形上下文

 a.在调用drawRect:方法之前,视图对象会自动匹配器描画环境,使你可以立刻描画.作为这些配置的一部分,UIView对象回对当前的描画环境创建一个图形上下文(对应于CGContextRef封装类型).改图形上下文包换了描画系统执行后续描画命令所需要的信息.

 b.通过调用UIGraphicsGetCurrentContext函数来去等当前上下文的指针(栈顶),改函数返回ygie类型为CGContextRef的引用,你可以将他传给Core Graphics函数,以修改当前的图形状态.