iPhone程序開發(fā) 圖形和動畫入門指南
iPhone程序開發(fā) 圖形和動畫入門指南是本文要介紹的內(nèi)容,不多說,直接進入話題,iPhone OS有幾個框架來處理圖形和動畫:
§UIKit 包含了一個面向C語言類的庫,它提供了用戶界面操作和2D繪圖。你同樣可以使用UIKit來使用戶界面有活躍起來
§Core Graphics是一個基于C語言的API(應(yīng)用程序接口)用來繪制矢量圖形,位圖及PDF目錄。(請注意Quartz 2D是2D繪畫引擎的專用術(shù)語,而Core Graphics是該框架的名稱,這兩個術(shù)語通常被用作同義字。)
§Core Animation 面向C語言的API對于用戶界面增添了光滑的運動及動態(tài)的反饋
§OpenGL ES是OpenGL的手機版本用于在移動設(shè)備上高品質(zhì)的2D和3D繪圖。它是桌面上OpenGL API的一個子集并在設(shè)計時兼顧了緊湊性和有效性。OpenGL ES框架包含了EAGL,基于C的API及為將OpenGL ES整合到Core Animation層和UIKit 視圖。
你可以在你的用戶界面上使用UIKit來進行典型的圖形操作,列如繪制圖形,設(shè)置顏色,填充矩陣。它同樣也是你用來傳輸?shù)墓ぞ撸ㄒ苿?,縮放,旋轉(zhuǎn))將一個視圖(或屏幕)平整的傳入另一個,并在你的視圖或?qū)哟沃袆?chuàng)建一個生動的目錄。
當(dāng)你需要更多強大的2D繪制能力時,使用Core Graphics框架。它是繪制矢量圖形、線條、形狀、模式、傾斜度、鏡像甚至PDF文件的粗加工。更高層的框架列如UIKit,可使用Core Graphics。
Core Animation 是一個編程界面,UIKit框架通過其來實現(xiàn)類的分層和轉(zhuǎn)換。大多數(shù)時候,你可能不需要直接用到Core Animation。只有當(dāng)你的應(yīng)用程序在動畫上需要進行細致的操作時會使用到它。
在使用OpenGL ES你可能需要用到GPU提供的高級圖形處理器來開發(fā)游戲或者其它應(yīng)用程序。
基本條件
為了更好的理解iPhone OS繪圖工程的基本情況,請閱讀 iPhone Application Programming Guide以下章節(jié):
§想要了解視圖層次、iPhone OS自帶的坐標(biāo)系統(tǒng)以及你在視圖上可進行的操作之類的概念,請閱讀 "Windows and Views"。
§想要了解圖形和動畫的概念及術(shù)語介紹,請閱讀"Graphics and Drawing" 。
為了在你的iPhone 應(yīng)用程序上支持圖片和動畫,你需要根據(jù)你的特定需要決定使用哪種邊框。仔細研究用到那些框架的模板程序,來理解如何通過不同的框架將功能和方法想結(jié)合來創(chuàng)建一個可運行的應(yīng)用程序。
選擇合適的框架
通常情況下,你應(yīng)該使用***的框架來滿足你應(yīng)用程序的需要。只有當(dāng)你需要更精確的操作和更強大的功能時才去使用低層框架。
如果你打算將2D目錄分層,使用UIKit框架的UIView 類。UIView 類是構(gòu)建在Core Animation層之上,在iPhone OS上,使用視圖去分層比使用Core Animation layers簡單得多。
如果你想要生動地將目錄或視圖分層,使用UIKit框架中的簡單動畫和Core Animation獲得更精確的控制。
如果你想要顯示圖像鏡像,使用UIKit框架提供的UIImage and UIImageView類。
如果你想要繪制特定,矢量的圖像,使用UIKit框架提供的Core Graphics框架和UIView 類。
如果你想要制作游戲,3D目錄,或者一個具備GPU圖形能力的應(yīng)用程序,使用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這個文件中的方法講述了應(yīng)用程序如何建立次視圖的方法。
動畫
想要認識你應(yīng)用程序中的動畫目錄,先閱讀 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 來構(gòu)建主框架動畫。
想對動畫制作有更深的理解,請參閱 Core Animation Programming Guide。
巧妙地利用圖像
想要在你的應(yīng)用程序中使用圖片,你可能會對 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,它描述了你將會使用到繪圖的多數(shù)功能。
接著,查看一下在Xcode中的示例代碼Finger Sketch,你將會認識到如何構(gòu)建Core Graphics,執(zhí)行drawRect:方式和繪制目錄都是基于用戶的操作實現(xiàn)的。
想要對繪圖制作有更深的了解,請閱讀Overview of Quartz 2D。想要了解如何執(zhí)行特定的繪圖任務(wù),例如,創(chuàng)建一個圖案,路徑,或者坡度,請在Quartz 2D Programming Guide中閱讀合適的章節(jié)。
通過OpenGL ES來制圖
想要學(xué)習(xí)使用OpenGL ES 來制圖,請先閱讀保留著OpenGL ES詳述的Khronos工業(yè)協(xié)會所提供的OpenGL ES Overview。
接著,查閱在Xcode中GLSprite示例代碼。你將會在EAGLView.m 文件中看到如何為OpenGL ES目錄創(chuàng)建一個框架緩沖器。
想要對如何在iPhone上充分利用OpenGL ES有更深的了解,請閱讀 OpenGL ES Programming Guide for iPhone OS。
小結(jié):iPhone程序開發(fā) 圖形和動畫入門指南的內(nèi)容介紹完了,希望本文對你有所幫助。