版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章圖像和繪圖UIView的子類中,我們可以使用固定的形狀如UIButton,TextField來繪制用戶界面。有時,為了使用戶看到的界面生動形象,我們可以自己繪制一個圖形。繪制圖形的方法有兩種:一種是使用UIImageView類來顯示一個圖像,一種是通過代碼來動態(tài)的繪制一個圖形。本章主要講解使用代碼動態(tài)繪制一個圖形。4.1圖像視圖的創(chuàng)建圖像是由一些排列的像素組成的,在計算機中的存儲格式有BMP、PCX、TIF、GIFD等,一般數(shù)據(jù)量比較大。它除了可以表達真實的照片外,也可以表現(xiàn)復雜繪畫的某些細節(jié),并具有靈活和富有創(chuàng)造力等特點。我們要在用戶界面顯示圖像,必須要有UIImageView視圖才可以,現(xiàn)在我們來為大家講解圖像視圖的創(chuàng)建。4.1.1靜態(tài)創(chuàng)建圖像視圖創(chuàng)建一個項目名為400的項目。要靜態(tài)創(chuàng)建一個圖像視圖,首先要拖一個UIImageView的視圖到ViewController.xib文件的設置界面。再將一個要顯示的圖像添加到項目中的SupportingFiles文件夾中。如果要顯示的圖像在SupportingFiles文件夾中就不需要添加。在這里我們要顯示的圖像在桌面上,圖像名為“114747086.jpg”。圖片添加好以后,我們選擇“showtheAttributesinspector〞對話框中ImageView選項,將Image設置為要用來顯示在用戶界面的圖像。4.1.2動態(tài)創(chuàng)建圖像視圖我們不僅可以使用手動創(chuàng)建圖像即靜態(tài)創(chuàng)建圖像,還可以動態(tài)的創(chuàng)建圖像也就是我們所說的使用代碼創(chuàng)建圖像視圖,創(chuàng)建圖像視圖的形式如圖4.3所示。4.2圖像的屬性屬性相信大家并不陌生了。我們在使用圖像時,為了達到最佳效果,也需要設置圖像的屬性。本節(jié)將主要為大家講解圖像的顯示方式、圖示的顯示位置等相關方面的內容。4.2.1圖像的顯示方式當我們在ViewController.xib文件中設置用戶界面時,將UIImageView拖到設置界面,大家會看到“showtheAttributesinspector〞選項卡的View中有一個Mode設置,它就是將圖像以各種方式進行顯示。4.2.1圖像的顯示方式4.2.2圖像的顯示位置如果我們想要改變圖像的位置時,我們可以采用三種方法:frame、center、transform。接下來我們詳細的為大家講解這三種方法。1.frame要想修改圖像的位置,我們可以在創(chuàng)建時直接選擇我們要將圖片放置的位置,使用frame的形式。1.frame1.frame1.frame2動態(tài)創(chuàng)建圖像視圖為了在繪圖中添加陰影,需要在繪圖前給圖形上下文設置陰影,設置陰影的方法通常為CGContextSetShadow。xib文件的設置界面所遵循的類改為我們所創(chuàng)建的繪制圖形的類一般都被命名為“draw”。我們在編寫好程序以后是不能直接運行的,要將ViewController.沒有它,我們無法對圖形設備畫任何東西。CGContextAddArc我們不僅可以使用手動創(chuàng)建圖像即靜態(tài)創(chuàng)建圖像,還可以動態(tài)的創(chuàng)建圖像也就是我們所說的使用代碼創(chuàng)建圖像視圖,創(chuàng)建圖像視圖的形式如圖4.本節(jié)主要為大家講解繪制位圖的兩種方法:一種是CGContextDrawImage,一種是CGContextDrawTiledImage。UIView的子類中,我們可以使用固定的形狀如UIButton,TextField來繪制用戶界面。5iPhoneSimulator不顯示繪制內容的情況圖形上下文為圖形設備提供了上下文,通俗點講,就是提供了畫圖環(huán)境。如果我們繪制的圖形用到了路徑指令中CGContextAddLineToPoint或者是CGContextAddArcToPoint等和點相關的指令時,要指定當前點的位置。文字的繪制模式一般使用CGContextSetTextDrawingMode來設置?,F(xiàn)在我們使用路徑中的CGContextAddRect或者是CGContextAddRects來繪制一個矩形。只有獲取了當前的圖形上下文我們才可以繪制圖形或修改繪圖結果。CGContextClosePathUIView的子類中,我們可以使用固定的形狀如UIButton,TextField來繪制用戶界面。2.center我們如果要通過使用圖像視圖的中間點來改變圖像的顯示位置。3.transformtransform的功能不僅可以改變圖像的位置,還可以使圖像進行旋轉和縮放。3.transform3.transform3.transform4.2.3圖像的其它屬性以上我們?yōu)榇蠹抑v解了我們常用到的屬性設置。接下來,我們?yōu)榇蠹医榻B圖像的其它屬性設置。名稱功能hidden隱藏或顯示圖像alpha設置透明度highlightedImage設置高亮時顯示的圖片image設置正常顯示的圖片圖像是由一些排列的像素組成的,在計算機中的存儲格式有BMP、PCX、TIF、GIFD等,一般數(shù)據(jù)量比較大。圖層圖形上下文(Layergraphicscontext)本節(jié)將主要為大家講解圖像的顯示方式、圖示的顯示位置等相關方面的內容。它除了可以表達真實的照片外,也可以表現(xiàn)復雜繪畫的某些細節(jié),并具有靈活和富有創(chuàng)造力等特點。CGContextAddArc將PostScript轉換為PDFCGContextClosePath現(xiàn)在我們使用路徑中的CGContextAddRect或者是CGContextAddRects來繪制一個矩形。圖像是由一些排列的像素組成的,在計算機中的存儲格式有BMP、PCX、TIF、GIFD等,一般數(shù)據(jù)量比較大。所謂圖形設備就是對呈現(xiàn)圖形的設備的抽象,比如屏幕、打印機等。要靜態(tài)創(chuàng)建一個圖像視圖,首先要拖一個UIImageView的視圖到ViewController.文字的繪制模式一般使用CGContextSetTextDrawingMode來設置。本章主要為大家講解了使用繪圖形式的兩種方法::一種是使用UIImageView類來顯示一個圖像,一種是通過代碼來動態(tài)的繪制一個圖形。2設置文字繪制模式1靜態(tài)創(chuàng)建圖像視圖4.3圖像切換我們在使用查看相冊中的圖像時,就用到了圖片的切換,本節(jié)我們將為大家講解圖像和圖像之間是如圖實現(xiàn)切換的。4.4繪圖為了使我們的用戶界面看起來很漂亮,我們可以使用代碼動態(tài)的繪制我們想要的圖形。而所有的繪圖都必須要通過圖形上下文來實現(xiàn)。本節(jié)將主要講解圖形上下文和在繪圖時所用到的數(shù)據(jù)類型等相關方面的內容。4.4.1圖形上下文圖形上下文〔GraphicsContext〕是一個非常重要的概念。沒有它,我們無法對圖形設備畫任何東西。圖形上下文為圖形設備提供了上下文,通俗點講,就是提供了畫圖環(huán)境。所謂圖形設備就是對呈現(xiàn)圖形的設備的抽象,比如屏幕、打印機等。一般我們用到的圖形上下文一共有五種。4.4.1圖形上下文名稱功能位圖圖形上下文(Bitmapgraphicscontext)允許用戶繪制RGB或者CMYK顏色,或者調整一張位圖的灰度PDF圖形上下文(PDFgraphicscontext)可以讓用戶創(chuàng)建PDF文件。PDF文件是Adobe公司的矢量繪圖協(xié)議,可以直接打印窗口文件圖形上下文(Windowgraphicscontext)可以讓用戶圖形上下文繪制到窗口,前提是用戶必須會在此窗口獲取相應的圖形上下文圖層圖形上下文(Layergraphicscontext)繪制到圖層里面PostScriptgraphicscontext針對打印4.4.2數(shù)據(jù)類型在繪圖中,有著它自己特有的數(shù)據(jù)類型。這些數(shù)據(jù)類型以功能。數(shù)據(jù)類型功能CGPathRef用于畫路徑,例如直線(一點到另一點的路徑)CGImageRef用于處理圖片CGShadingRef陰影CGLayerRef用于處理圖層CGFunctionRef定義回調函數(shù)CGColorRef處理顏色CGPSConverterRef將PostScript轉換為PDFCGDataConsumerRef管理數(shù)據(jù)CGFontRef字體CGPDFDictionayRef管理PDFCGPDFScannerRef解析PDF格式4.5繪制路徑路徑指的是物體活動的軌跡,我們可以通過不同的路徑將我們的圖繪制為直線、矩形、圓等不同的形狀。本節(jié)將主要為大家講解基本形狀的繪制方法。4.5.1繪制直線要繪制直線,必須要獲取當前的圖形上下文。只有獲取了當前的圖形上下文我們才可以繪制圖形或修改繪圖結果。4.5.1繪制直線4.5.1繪制直線4.5.1繪制直線4.5.2繪制矩形直線是我們使用路徑指令繪制的最簡單的圖形?,F(xiàn)在我們使用路徑中的CGContextAddRect或者是CGContextAddRects來繪制一個矩形。在這里我們使用的是CGContextAddRect繪制矩形。4.5.3繪制圓在路徑指令中使用CGContextAddEllipseInRect指令來繪制圓。4.5.4其它的路徑指令以上路徑指令是大家經常用到的,以下是路徑指令中的其它指令。功能指令用一個或兩個控制點描繪一條貝賽爾曲線CGContextAddQuadCurveToPointCGContextAddCurveToToPoint繪制一條圓弧CGContextAddArcToPointCGContextAddArc閉合當前路徑CGContextClosePath這將追加一條連接路徑起點和終點的線段。如果打算填充路徑,不需要此操作系統(tǒng)會自動實現(xiàn)描邊或填充路徑(即把路徑畫出來)CGContextStrokePathCGContextFillPathCGContextEOFillPathCGContextDrawPath同時描邊和填充路徑清除矩形CGContextClearRect4.5.5iPhoneSimulator不顯示繪制內容的情況由于各種意外情況,在編寫好程序以后,iPhoneSimulator模擬器不會出現(xiàn)我們所繪制的內容,現(xiàn)在我們將一些可能的情況列出,希望大家注意。1.運行時我們在編寫好程序以后是不能直接運行的,要將ViewController.xib文件的設置界面所遵循的類改為我們所創(chuàng)建的繪制圖形的類一般都被命名為“draw”。2.缺少描邊或填充路徑的指令在繪制好圖形以后,描邊或填充路徑的指令是不可缺少的。我們以示例4-12為例,將程序的CGContextStrokePath指令故意缺少,這樣iPhoneSimulator模擬器就不會顯示我們所繪制的圖形。3.沒有指定當前點如果我們繪制的圖形用到了路徑指令中CGContextAddLineToPoint或者是CGContextAddArcToPoint等和點相關的指令時,要指定當前點的位置。我們以示例4-12為例,將指定CGContextMoveToPoint所指定的當前點去掉,這樣iPhoneSimulator模擬器也不會顯示我們所繪制的圓弧。4.6繪制位圖位圖指的是以無數(shù)的色彩點組成的圖案。當我們將位圖無限放大時就會看到一塊一塊的像素色塊,這時效果會失真。本節(jié)主要為大家講解繪制位圖的兩種方法:一種是CGContextDrawImage,一種是CGContextDrawTiledImage。4.6.1CGContextDrawImage繪制位圖如果我們要將相應的圖片繪制到我們所指定的矩形區(qū)域中,那么就要使用CGContextDrawImage方法繪制的位圖。4.6.2CGContextDrawTiledImage繪制位圖如果想讓固定大小的位圖平鋪某個區(qū)域,就要使用CGContextDrawTiledImage設置所要繪制的圖形。4.6.2CGContextDrawTiledImage繪制位圖4.7陰影有時,為了讓繪制的圖形更有立體感,我們就要為圖形加上陰影。為了在繪圖中添加陰影,需要在繪圖前給圖形上下文設置陰影,設置陰影的方法通常為CGContextSetShadow。4.8繪制文字一般我們使用textField或者是TextView視圖書寫的文字不能直接達到我們想要的效果,所以我們就使用代碼動態(tài)的繪制文字。本節(jié)將主要為大家講解有關文字中的選擇文字、設置繪制的模式、設置文字轉換矩陣、繪制文字等相關方面的內容。4.8.1選擇字體要繪制一個文字,首選要進行字體的選擇,我們可以使用CGContextSelectFont選擇我們想要的字體。4.8.2設置文字繪制模式文字的繪制模式一般使用CGContextSetTextDrawingMode來設置。4.8.3設置字體變換矩陣CGContextSetTextMatrix的功能是設置字體轉變的矩陣,也是為了防止字體倒立。4.8.4繪制文字當我們按以上過程都設置好以后就可以繪制文字啦,我們使用CGContextShowTextAtPoint來繪制文字。4.8.5文字的綜合應用以上的內容是文字的基本設置方法,現(xiàn)在我們就來使用CGContextSelectFont將字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 妊娠期免疫性疾病的個體化調節(jié)策略
- 妊娠期急性胰腺炎的病因與治療策略新進展
- 安全生產判斷試題及答案
- 大段骨缺損:機器人3D打印血管化修復策略
- 大數(shù)據(jù)分析在疼痛預測中的模型構建
- 科目二考試順序及答案
- 2026年體驗農業(yè)(開發(fā)模式)試題及答案
- 2025年中職第四學年(制冷系統(tǒng)維修)故障排除階段測試題及答案
- 2025年高職室內設計(室內裝修設計)試題及答案
- 2025年高職(航空服務)航空服務基礎試題及答案
- 清華大學教師教學檔案袋制度
- GB/T 3098.5-2025緊固件機械性能第5部分:自攻螺釘
- 衛(wèi)生院消防安全演練方案篇
- 酒精體積分數(shù)質量分數(shù)密度對照表優(yōu)質資料
- 電焊機操作JSA分析表
- 落地式鋼管腳手架工程搭拆施工方案
- 辦公室節(jié)能減排措施
- 養(yǎng)老院健康檔案模板
- 數(shù)字信號處理課程實驗教學大綱
- 新競爭環(huán)境下的企業(yè)發(fā)展戰(zhàn)略(培訓講座課件PPT)
- 電力拖動自動控制系統(tǒng)-運動控制系統(tǒng)(第5版)習題答案
評論
0/150
提交評論