http://www.cnblogs.com/appDev/archive/2011/07/08/2100607.html
iOS中的图形和绘制
1、iOS支持OpenGL ES和Quartz/UIKit/CoreAnimation绘制接口。UIKit绘制必须在主线程中完成。
2、Quartz支持基于路径的绘制,反走样,填充,图像,上色,坐标变换,pdf绘制显示解析等功能。
3、UIKit支持线条绘制、图像和颜色操作。
4、Core Animation支持动画绘制。
5、View的使用DrawRect绘制,以下行为会触发:
- View的移动和遮挡。
- View的隐藏和显示。
- 拖动View。
- 显示调用setNeedDisplay和setNeedDispalyRect
6、UIKit左上角为原点,右下角为终点。CoreAnimation坐下角为原点,右上角为终点。使用CGContextRotateCTM、CGContextScaleCTM、CGContextTranslateCTM来变换矩阵,或者直接使用CGAffineTransform设置变换矩阵。
7、CGContext绘制上下文,对于Bitmap和PDF,可以创建不同的context类型。
- 变换矩阵
- 裁剪范围
- 线条绘制属性
- 曲线精度
- 反走样
- 填充属性,描边属性
- 半透明属性
- 颜色空间
- 文字
- 颜色混合模式
8、使用UIGraphicsGetCurrentContext来获取当前的CGContext。
9、UIGraphicsBeginImageContextWithOptions和UIGraphicsEndImageContext用来包含图像绘制的代码。
UIGraphicsBeginPDFContextToFile(ToData)和UIGraphicsEndPDFContext用来包含PDF绘制的代码。
10、Path绘制,即向量绘制。推荐使用UIBezierPath,其次是CGPath。
11、翻转屏幕变换:
CGContextTranslateCTM(graphicsContext, 0.0, drawingRect.size.height); |
CGContextScaleCTM(graphicsContext, 1.0, -1.0); |
12、Point通常等于Pixel,但是可以指定一个Point对应多个Pixel。
13、使用UIColor坐颜色空间变换。
14、绘制性能:
- 最小化绘制调用
- 尽量使用不透明的View
- 在卷屏时重用View和表格
- 在卷屏时可以不清空上次绘制结果
- 减少绘制状态切换。