<原>DrawingPrinting编程学习1
ios 绘图 可以通过两种方式 实现
1.Core Graphics and UIKit frameworks, 支持2D视图
2.OpenGL ES 这里先不讨论
首先了解几个主要的概念
1-graphics context 图形上下文(图形环境)
为了显示视图内容,UIKit 为渲染工具 创建了一个graphics context (图形上下文)。这个上下文包括了绘图系统需要执行的一些绘图命令的信息。 比如 一些绘图的属性 如fill and stroke color, the font, the clipping area, and line width. 我们也可以为位图图像和pdf图像建立自定义的 图形上下文 。
2-default coordinate system UIKit 默认的坐标系统 view的左上角是原点 没啥好说的
3-logical coordinate space 测量两点间的距离 device coordinate space 是测量像素间的距离 从精确度上看 “点”是用浮点值表示的
UIKit, Core Graphics, and Core Animation Give Your Application Many Tools For
Drawing
UIKit and Core Graphics 有很多补充的图像功能 包括graphics contexts, bezier paths, images, bitmaps, transparency layers, colors, fonts, PDF content, and drawing rectangles and clipping areas
另外Core Graphics 有与line attributes, color spaces, pattern colors, gradients, shadings, and image masks 这些属性相关的方法
The Core Animation framework 允许我们通过操作和显示内容 创建流动样式的动画效果 而这里的内容可以是通过其他方式创建的
It’s Easy to Update Your Application for High-Resolution Screens
一些ios设备的屏幕的特点是 高分辨率,所以 你的应用程序 必须做两手准备 即能在这些高分辨率的机器上跑也能在那些低分辨率的机器上跑
我们可以做的是 准备多张图片以适应高分辨率 然后在代码处 判断条件并且 应用合适的图片
Applications Have a Range of Options for Printing Content
自ios4.2起 应用程序支持 无限打印内容 ,当实现打印工作是,我们有三种方式来把要打印的内容交给UIKit
1.可以直接给framework 一个或者多个可直接打印的对象,这样的对象需要最低限度的应用程序的参与 These are NSData, NSURL, UIImage, or ALAsset objects containing or referencing image data or PDF content
2.可以分配一个格式化的程序来完成打印工作,这个格式化的程序可以是一个对象,能够对许多页的内容进行某种形式的布局,例如plain text or HTML
3.可以为打印工作分配一个页渲染器,页渲染器通常是一个UIPrintPageRenderer 的自定义子类的一个实例 一个页渲染器能使用一个或者多个 打印格式化程序 来完成画图工作以及 格式化要打印的内容
,