輕松學(xué)iPhone開發(fā)之圖像和繪圖優(yōu)秀PPT_第1頁
輕松學(xué)iPhone開發(fā)之圖像和繪圖優(yōu)秀PPT_第2頁
輕松學(xué)iPhone開發(fā)之圖像和繪圖優(yōu)秀PPT_第3頁
輕松學(xué)iPhone開發(fā)之圖像和繪圖優(yōu)秀PPT_第4頁
輕松學(xué)iPhone開發(fā)之圖像和繪圖優(yōu)秀PPT_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第4章圖像和繪圖UIView的子類中,我們可以使用固定的形狀如UIButton,TextField來繪制用戶界面。有時(shí),為了使用戶看到的界面生動(dòng)形象,我們可以自己繪制一個(gè)圖形。繪制圖形的方法有兩種:一種是使用UIImageView類來顯示一個(gè)圖像,一種是通過代碼來動(dòng)態(tài)的繪制一個(gè)圖形。本章主要講解使用代碼動(dòng)態(tài)繪制一個(gè)圖形。4.1圖像視圖的創(chuàng)建圖像是由一些排列的像素組成的,在計(jì)算機(jī)中的存儲(chǔ)格式有BMP、PCX、TIF、GIFD等,一般數(shù)據(jù)量比較大。它除了可以表達(dá)真實(shí)的照片外,也可以表現(xiàn)復(fù)雜繪畫的某些細(xì)節(jié),并具有靈活和富有創(chuàng)造力等特點(diǎn)。我們要在用戶界面顯示圖像,必須要有UIImageView視圖才可以,現(xiàn)在我們來為大家講解圖像視圖的創(chuàng)建。4.1.1靜態(tài)創(chuàng)建圖像視圖創(chuàng)建一個(gè)項(xiàng)目名為400的項(xiàng)目。要靜態(tài)創(chuàng)建一個(gè)圖像視圖,首先要拖一個(gè)UIImageView的視圖到ViewController.xib文件的設(shè)置界面。再將一個(gè)要顯示的圖像添加到項(xiàng)目中的SupportingFiles文件夾中。如果要顯示的圖像在SupportingFiles文件夾中就不需要添加。在這里我們要顯示的圖像在桌面上,圖像名為“114747086.jpg”。圖片添加好以后,我們選擇“showtheAttributesinspector〞對(duì)話框中ImageView選項(xiàng),將Image設(shè)置為要用來顯示在用戶界面的圖像。4.1.2動(dòng)態(tài)創(chuàng)建圖像視圖我們不僅可以使用手動(dòng)創(chuàng)建圖像即靜態(tài)創(chuàng)建圖像,還可以動(dòng)態(tài)的創(chuàng)建圖像也就是我們所說的使用代碼創(chuàng)建圖像視圖,創(chuàng)建圖像視圖的形式如圖4.3所示。4.2圖像的屬性屬性相信大家并不陌生了。我們在使用圖像時(shí),為了達(dá)到最佳效果,也需要設(shè)置圖像的屬性。本節(jié)將主要為大家講解圖像的顯示方式、圖示的顯示位置等相關(guān)方面的內(nèi)容。4.2.1圖像的顯示方式當(dāng)我們在ViewController.xib文件中設(shè)置用戶界面時(shí),將UIImageView拖到設(shè)置界面,大家會(huì)看到“showtheAttributesinspector〞選項(xiàng)卡的View中有一個(gè)Mode設(shè)置,它就是將圖像以各種方式進(jìn)行顯示。4.2.1圖像的顯示方式4.2.2圖像的顯示位置如果我們想要改變圖像的位置時(shí),我們可以采用三種方法:frame、center、transform。接下來我們詳細(xì)的為大家講解這三種方法。1.frame要想修改圖像的位置,我們可以在創(chuàng)建時(shí)直接選擇我們要將圖片放置的位置,使用frame的形式。1.frame1.frame1.frame2動(dòng)態(tài)創(chuàng)建圖像視圖為了在繪圖中添加陰影,需要在繪圖前給圖形上下文設(shè)置陰影,設(shè)置陰影的方法通常為CGContextSetShadow。xib文件的設(shè)置界面所遵循的類改為我們所創(chuàng)建的繪制圖形的類一般都被命名為“draw”。我們在編寫好程序以后是不能直接運(yùn)行的,要將ViewController.沒有它,我們無法對(duì)圖形設(shè)備畫任何東西。CGContextAddArc我們不僅可以使用手動(dòng)創(chuàng)建圖像即靜態(tài)創(chuàng)建圖像,還可以動(dòng)態(tài)的創(chuàng)建圖像也就是我們所說的使用代碼創(chuàng)建圖像視圖,創(chuàng)建圖像視圖的形式如圖4.本節(jié)主要為大家講解繪制位圖的兩種方法:一種是CGContextDrawImage,一種是CGContextDrawTiledImage。UIView的子類中,我們可以使用固定的形狀如UIButton,TextField來繪制用戶界面。5iPhoneSimulator不顯示繪制內(nèi)容的情況圖形上下文為圖形設(shè)備提供了上下文,通俗點(diǎn)講,就是提供了畫圖環(huán)境。如果我們繪制的圖形用到了路徑指令中CGContextAddLineToPoint或者是CGContextAddArcToPoint等和點(diǎn)相關(guān)的指令時(shí),要指定當(dāng)前點(diǎn)的位置。文字的繪制模式一般使用CGContextSetTextDrawingMode來設(shè)置。現(xiàn)在我們使用路徑中的CGContextAddRect或者是CGContextAddRects來繪制一個(gè)矩形。只有獲取了當(dāng)前的圖形上下文我們才可以繪制圖形或修改繪圖結(jié)果。CGContextClosePathUIView的子類中,我們可以使用固定的形狀如UIButton,TextField來繪制用戶界面。2.center我們?nèi)绻ㄟ^使用圖像視圖的中間點(diǎn)來改變圖像的顯示位置。3.transformtransform的功能不僅可以改變圖像的位置,還可以使圖像進(jìn)行旋轉(zhuǎn)和縮放。3.transform3.transform3.transform4.2.3圖像的其它屬性以上我們?yōu)榇蠹抑v解了我們常用到的屬性設(shè)置。接下來,我們?yōu)榇蠹医榻B圖像的其它屬性設(shè)置。名稱功能hidden隱藏或顯示圖像alpha設(shè)置透明度highlightedImage設(shè)置高亮?xí)r顯示的圖片image設(shè)置正常顯示的圖片圖像是由一些排列的像素組成的,在計(jì)算機(jī)中的存儲(chǔ)格式有BMP、PCX、TIF、GIFD等,一般數(shù)據(jù)量比較大。圖層圖形上下文(Layergraphicscontext)本節(jié)將主要為大家講解圖像的顯示方式、圖示的顯示位置等相關(guān)方面的內(nèi)容。它除了可以表達(dá)真實(shí)的照片外,也可以表現(xiàn)復(fù)雜繪畫的某些細(xì)節(jié),并具有靈活和富有創(chuàng)造力等特點(diǎn)。CGContextAddArc將PostScript轉(zhuǎn)換為PDFCGContextClosePath現(xiàn)在我們使用路徑中的CGContextAddRect或者是CGContextAddRects來繪制一個(gè)矩形。圖像是由一些排列的像素組成的,在計(jì)算機(jī)中的存儲(chǔ)格式有BMP、PCX、TIF、GIFD等,一般數(shù)據(jù)量比較大。所謂圖形設(shè)備就是對(duì)呈現(xiàn)圖形的設(shè)備的抽象,比如屏幕、打印機(jī)等。要靜態(tài)創(chuàng)建一個(gè)圖像視圖,首先要拖一個(gè)UIImageView的視圖到ViewController.文字的繪制模式一般使用CGContextSetTextDrawingMode來設(shè)置。本章主要為大家講解了使用繪圖形式的兩種方法::一種是使用UIImageView類來顯示一個(gè)圖像,一種是通過代碼來動(dòng)態(tài)的繪制一個(gè)圖形。2設(shè)置文字繪制模式1靜態(tài)創(chuàng)建圖像視圖4.3圖像切換我們在使用查看相冊中的圖像時(shí),就用到了圖片的切換,本節(jié)我們將為大家講解圖像和圖像之間是如圖實(shí)現(xiàn)切換的。4.4繪圖為了使我們的用戶界面看起來很漂亮,我們可以使用代碼動(dòng)態(tài)的繪制我們想要的圖形。而所有的繪圖都必須要通過圖形上下文來實(shí)現(xiàn)。本節(jié)將主要講解圖形上下文和在繪圖時(shí)所用到的數(shù)據(jù)類型等相關(guān)方面的內(nèi)容。4.4.1圖形上下文圖形上下文〔GraphicsContext〕是一個(gè)非常重要的概念。沒有它,我們無法對(duì)圖形設(shè)備畫任何東西。圖形上下文為圖形設(shè)備提供了上下文,通俗點(diǎn)講,就是提供了畫圖環(huán)境。所謂圖形設(shè)備就是對(duì)呈現(xiàn)圖形的設(shè)備的抽象,比如屏幕、打印機(jī)等。一般我們用到的圖形上下文一共有五種。4.4.1圖形上下文名稱功能位圖圖形上下文(Bitmapgraphicscontext)允許用戶繪制RGB或者CMYK顏色,或者調(diào)整一張位圖的灰度PDF圖形上下文(PDFgraphicscontext)可以讓用戶創(chuàng)建PDF文件。PDF文件是Adobe公司的矢量繪圖協(xié)議,可以直接打印窗口文件圖形上下文(Windowgraphicscontext)可以讓用戶圖形上下文繪制到窗口,前提是用戶必須會(huì)在此窗口獲取相應(yīng)的圖形上下文圖層圖形上下文(Layergraphicscontext)繪制到圖層里面PostScriptgraphicscontext針對(duì)打印4.4.2數(shù)據(jù)類型在繪圖中,有著它自己特有的數(shù)據(jù)類型。這些數(shù)據(jù)類型以功能。數(shù)據(jù)類型功能CGPathRef用于畫路徑,例如直線(一點(diǎn)到另一點(diǎn)的路徑)CGImageRef用于處理圖片CGShadingRef陰影CGLayerRef用于處理圖層CGFunctionRef定義回調(diào)函數(shù)CGColorRef處理顏色CGPSConverterRef將PostScript轉(zhuǎn)換為PDFCGDataConsumerRef管理數(shù)據(jù)CGFontRef字體CGPDFDictionayRef管理PDFCGPDFScannerRef解析PDF格式4.5繪制路徑路徑指的是物體活動(dòng)的軌跡,我們可以通過不同的路徑將我們的圖繪制為直線、矩形、圓等不同的形狀。本節(jié)將主要為大家講解基本形狀的繪制方法。4.5.1繪制直線要繪制直線,必須要獲取當(dāng)前的圖形上下文。只有獲取了當(dāng)前的圖形上下文我們才可以繪制圖形或修改繪圖結(jié)果。4.5.1繪制直線4.5.1繪制直線4.5.1繪制直線4.5.2繪制矩形直線是我們使用路徑指令繪制的最簡單的圖形?,F(xiàn)在我們使用路徑中的CGContextAddRect或者是CGContextAddRects來繪制一個(gè)矩形。在這里我們使用的是CGContextAddRect繪制矩形。4.5.3繪制圓在路徑指令中使用CGContextAddEllipseInRect指令來繪制圓。4.5.4其它的路徑指令以上路徑指令是大家經(jīng)常用到的,以下是路徑指令中的其它指令。功能指令用一個(gè)或兩個(gè)控制點(diǎn)描繪一條貝賽爾曲線CGContextAddQuadCurveToPointCGContextAddCurveToToPoint繪制一條圓弧CGContextAddArcToPointCGContextAddArc閉合當(dāng)前路徑CGContextClosePath這將追加一條連接路徑起點(diǎn)和終點(diǎn)的線段。如果打算填充路徑,不需要此操作系統(tǒng)會(huì)自動(dòng)實(shí)現(xiàn)描邊或填充路徑(即把路徑畫出來)CGContextStrokePathCGContextFillPathCGContextEOFillPathCGContextDrawPath同時(shí)描邊和填充路徑清除矩形CGContextClearRect4.5.5iPhoneSimulator不顯示繪制內(nèi)容的情況由于各種意外情況,在編寫好程序以后,iPhoneSimulator模擬器不會(huì)出現(xiàn)我們所繪制的內(nèi)容,現(xiàn)在我們將一些可能的情況列出,希望大家注意。1.運(yùn)行時(shí)我們在編寫好程序以后是不能直接運(yùn)行的,要將ViewController.xib文件的設(shè)置界面所遵循的類改為我們所創(chuàng)建的繪制圖形的類一般都被命名為“draw”。2.缺少描邊或填充路徑的指令在繪制好圖形以后,描邊或填充路徑的指令是不可缺少的。我們以示例4-12為例,將程序的CGContextStrokePath指令故意缺少,這樣iPhoneSimulator模擬器就不會(huì)顯示我們所繪制的圖形。3.沒有指定當(dāng)前點(diǎn)如果我們繪制的圖形用到了路徑指令中CGContextAddLineToPoint或者是CGContextAddArcToPoint等和點(diǎn)相關(guān)的指令時(shí),要指定當(dāng)前點(diǎn)的位置。我們以示例4-12為例,將指定CGContextMoveToPoint所指定的當(dāng)前點(diǎn)去掉,這樣iPhoneSimulator模擬器也不會(huì)顯示我們所繪制的圓弧。4.6繪制位圖位圖指的是以無數(shù)的色彩點(diǎn)組成的圖案。當(dāng)我們將位圖無限放大時(shí)就會(huì)看到一塊一塊的像素色塊,這時(shí)效果會(huì)失真。本節(jié)主要為大家講解繪制位圖的兩種方法:一種是CGContextDrawImage,一種是CGContextDrawTiledImage。4.6.1CGContextDrawImage繪制位圖如果我們要將相應(yīng)的圖片繪制到我們所指定的矩形區(qū)域中,那么就要使用CGContextDrawImage方法繪制的位圖。4.6.2CGContextDrawTiledImage繪制位圖如果想讓固定大小的位圖平鋪某個(gè)區(qū)域,就要使用CGContextDrawTiledImage設(shè)置所要繪制的圖形。4.6.2CGContextDrawTiledImage繪制位圖4.7陰影有時(shí),為了讓繪制的圖形更有立體感,我們就要為圖形加上陰影。為了在繪圖中添加陰影,需要在繪圖前給圖形上下文設(shè)置陰影,設(shè)置陰影的方法通常為CGContextSetShadow。4.8繪制文字一般我們使用textField或者是TextView視圖書寫的文字不能直接達(dá)到我們想要的效果,所以我們就使用代碼動(dòng)態(tài)的繪制文字。本節(jié)將主要為大家講解有關(guān)文字中的選擇文字、設(shè)置繪制的模式、設(shè)置文字轉(zhuǎn)換矩陣、繪制文字等相關(guān)方面的內(nèi)容。4.8.1選擇字體要繪制一個(gè)文字,首選要進(jìn)行字體的選擇,我們可以使用CGContextSelectFont選擇我們想要的字體。4.8.2設(shè)置文字繪制模式文字的繪制模式一般使用CGContextSetTextDrawingMode來設(shè)置。4.8.3設(shè)置字體變換矩陣CGContextSetTextMatrix的功能是設(shè)置字體轉(zhuǎn)變的矩陣,也是為了防止字體倒立。4.8.4繪制文字當(dāng)我們按以上過程都設(shè)置好以后就可以繪制文字啦,我們使用CGContextShowTextAtPoint來繪制文字。4.8.5文字的綜合應(yīng)用以上的內(nèi)容是文字的基本設(shè)置方法,現(xiàn)在我們就來使用CGContextSelectFont將字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論