iPhone程序开发 图形和动画入门指南是本文要介绍的内容,不多说,直接进入话题,iPhone OS有几个框架来处理图形和动画:
§UIKit 包含了一个面向C语言类的库,它提供了用户界面操作和2D绘图。你同样可以使用UIKit来使用户界面有活跃起来
§Core Graphics是一个基于C语言的API(应用程序接口)用来绘制矢量图形,位图及PDF目录。(请注意Quartz 2D是2D绘画引擎的专用术语,而Core Graphics是该框架的名称,这两个术语通常被用作同义字。)
§Core Animation 面向C语言的API对于用户界面增添了光滑的运动及动态的反馈
§OpenGL ES是OpenGL的手机版本用于在移动设备上高品质的2D和3D绘图。它是桌面上OpenGL API的一个子集并在设计时兼顾了紧凑性和有效性。OpenGL ES框架包含了EAGL,基于C的API及为将OpenGL ES整合到Core Animation层和UIKit 视图。
你可以在你的用户界面上使用UIKit来进行典型的图形操作,列如绘制图形,设置颜色,填充矩阵。它同样也是你用来传输的工具(移动,缩放,旋转)将一个视图(或屏幕)平整的传入另一个,并在你的视图或层次中创建一个生动的目录。
当你需要更多强大的2D绘制能力时,使用Core Graphics框架。它是绘制矢量图形、线条、形状、模式、倾斜度、镜像甚至PDF文件的粗加工。更高层的框架列如UIKit,可使用Core Graphics。
Core Animation 是一个编程界面,UIKit框架通过其来实现类的分层和转换。大多数时候,你可能不需要直接用到Core Animation。只有当你的应用程序在动画上需要进行细致的操作时会使用到它。
在使用OpenGL ES你可能需要用到GPU提供的高级图形处理器来开发游戏或者其它应用程序。
基本条件
为了更好的理解iPhone OS绘图工程的基本情况,请阅读 iPhone Application Programming Guide以下章节:
§想要了解视图层次、iPhone OS自带的坐标系统以及你在视图上可进行的操作之类的概念,请阅读 "Windows and Views"。
§想要了解图形和动画的概念及术语介绍,请阅读"Graphics and Drawing" 。
为了在你的iPhone 应用程序上支持图片和动画,你需要根据你的特定需要决定使用哪种边框。仔细研究用到那些框架的模板程序,来理解如何通过不同的框架将功能和方法想结合来创建一个可运行的应用程序。
选择合适的框架
通常情况下,你应该使用***的框架来满足你应用程序的需要。只有当你需要更精确的操作和更强大的功能时才去使用低层框架。
如果你打算将2D目录分层,使用UIKit框架的UIView 类。UIView 类是构建在Core Animation层之上,在iPhone OS上,使用视图去分层比使用Core Animation layers简单得多。
如果你想要生动地将目录或视图分层,使用UIKit框架中的简单动画和Core Animation获得更精确的控制。
如果你想要显示图像镜像,使用UIKit框架提供的UIImage and UIImageView类。
如果你想要绘制特定,矢量的图像,使用UIKit框架提供的Core Graphics框架和UIView 类。
如果你想要制作游戏,3D目录,或者一个具备GPU图形能力的应用程序,使用OpenGL ES框架,Core Animation的 CAEAGLLayer 类以及UIKit的UIView类。
想要了解UIKit框架的类的信息,请查阅 UIKit Framework Reference。想要了解Core Graphics 和OpenGL ES框架的类,请查阅Core Graphics Framework Reference 和 OpenGL ES Framework Reference。想要了解如何将动画插入程序,请参阅iPhone Application Programming Guide中 "Graphics and Drawing"。
绘制分层目录
想要了解绘制分层目录,你必须对UIView Class Reference特别是对它的管理视图层次的方式熟悉。
接着,在Xcode中打开 Metronome示例程序。注意一下 setupSubviews 这个类, 在MetronomeView.m这个文件中的方法讲述了应用程序如何建立次视图的方法。
动画
想要认识你应用程序中的动画目录,先阅读 iPhone Application Programming Guide中的"Animating Views"来了解那些属性你可以来制作动画。然后可查阅iPhone Application Programming Guide 中的"Applying Core Animation Effects" 。
接下来,在Xcode中打开 MoveMe示例程序。仔细阅读下包含着几个编辑动画视图方法的MoveMeView.m 文件, animateFirstTouchAtPoint:及 growAnimationDidStop:finished:context 这两个方法展示了如何 使用UIView类来使视图形象生动。而animatePlacardViewToCenter 则展示了如何使用Core Animation 来构建主框架动画。
想对动画制作有更深的理解,请参阅 Core Animation Programming Guide。
巧妙地利用图像
想要在你的应用程序中使用图片,你可能会对 UIImageView Class Reference 和 UIImage Class Reference感兴趣。如果你想要用户能够缩放图像,你同样需要熟悉UIScrollView Class Reference andUIScrollViewDelegate Protocol Reference。
绘制定制的2D目录
想要了解绘制2D目录,先要去阅读 iPhone Application Programming Guide中的"Drawing With Quartz and UI Kit"。接着,看看CGContext Reference,它描述了你将会使用到绘图的多数功能。
接着,查看一下在Xcode中的示例代码Finger Sketch,你将会认识到如何构建Core Graphics,执行drawRect:方式和绘制目录都是基于用户的操作实现的。
想要对绘图制作有更深的了解,请阅读Overview of Quartz 2D。想要了解如何执行特定的绘图任务,例如,创建一个图案,路径,或者坡度,请在Quartz 2D Programming Guide中阅读合适的章节。
通过OpenGL ES来制图
想要学习使用OpenGL ES 来制图,请先阅读保留着OpenGL ES详述的Khronos工业协会所提供的OpenGL ES Overview。
接着,查阅在Xcode中GLSprite示例代码。你将会在EAGLView.m 文件中看到如何为OpenGL ES目录创建一个框架缓冲器。
想要对如何在iPhone上充分利用OpenGL ES有更深的了解,请阅读 OpenGL ES Programming Guide for iPhone OS。
小结:iPhone程序开发 图形和动画入门指南的内容介绍完了,希望本文对你有所帮助。