UIImage專門用于顯示各種位圖該類支持表12.1所示的各種圖片格式。
10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有郎溪免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
當(dāng)系統(tǒng)內(nèi)存緊張時(shí)UIImage會(huì)將圖片數(shù)據(jù)從UIImage對(duì)象中清理出去來(lái)以節(jié)省系統(tǒng)內(nèi)存這里的清理行為只是清理UIImage內(nèi)部存儲(chǔ)的圖片數(shù)據(jù)并不清理UIImage對(duì)象本身。當(dāng)程序使用一個(gè)圖片數(shù)據(jù)被清理過(guò)的UIImage對(duì)象時(shí)該UIImage將會(huì)自動(dòng)從原始的圖片文件中加載圖片數(shù)據(jù)。
盡量避免使用UIImage加載過(guò)大如大于1024像素×1024像素的圖片如果程序?qū)嵲谛枰虞d這種大圖片可以考慮將該圖片分解成多張小圖片進(jìn)行加載。
如果用UIImage來(lái)顯示靜止的圖片UIImage提供了如下常用的類方法。
+ p_w_picpathNamed:該方法用于加載指定文件名對(duì)應(yīng)的圖片。該方法有緩存機(jī)制如果該方法試圖加載的文件不存在它才會(huì)去加載圖片文件并緩存它如果系統(tǒng)已經(jīng)緩存過(guò)指定的圖片該方法將直接使用已緩存的圖片。
當(dāng)程序需要頻繁地加載、卸載圖片文件時(shí)不應(yīng)該使用該方法來(lái)加載圖片。
+ p_w_picpathWithContentsOfFile:該方法用于加載指定文件名對(duì)應(yīng)的圖片。
+ p_w_picpathWithData:該方法用于根據(jù)NSData中封裝的圖片數(shù)據(jù)來(lái)創(chuàng)建圖片。
+ p_w_picpathWithData:scale:該方法用于根據(jù)NSData中封裝的圖片數(shù)據(jù)來(lái)創(chuàng)建圖片并按指定的縮放因子對(duì)圖片進(jìn)行縮放。
+ p_w_picpathWithCGImage:該方法用于根據(jù)指定的CGImageRef對(duì)象來(lái)創(chuàng)建UIImage。
+ p_w_picpathWithCGImage:scale:orientation:該方法用于根據(jù)指定的CGImageRef對(duì)象來(lái)創(chuàng)建UIImage并將圖片縮放到指定比例。該方法的最后一個(gè)參數(shù)指定對(duì)圖片執(zhí)行旋轉(zhuǎn)、鏡像等變換操作。
上面這些方法涉及一個(gè)CGImageRef這是處理位圖的另一個(gè)API本節(jié)稍后會(huì)詳細(xì)介紹。
通過(guò)上面介紹的這些方法UIImage可以加載不同數(shù)據(jù)源的圖片包括加載應(yīng)用程序資源包的圖片、加載網(wǎng)絡(luò)圖片和手機(jī)本地圖片。下面對(duì)UIImage需要讀取的圖片進(jìn)行簡(jiǎn)單分類。
如果程序需要從應(yīng)用資源包讀取圖片可借助UIImage的p_w_picpathNamed:方法進(jìn)行讀取例如如下代碼
UIImage* p_w_picpath=[UIImage p_w_picpathNamed:@"fkjava.png"];
如果需要從網(wǎng)絡(luò)讀取圖片可借助NSData的方法來(lái)加載指定URL對(duì)應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)然后利用UImage的p_w_picpathWithData:方法來(lái)加載圖片即可。例如如下代碼
NSURL* url = [NSURL URLWithString:@"http://www.crazyit.org/logo.jpg"];
NSData* data = [NSData dataWithContentsOfURL:url]
UIImage* p_w_picpath = [UIImage p_w_picpathWithData:data];
如果需要讀取手機(jī)本地的圖片只要先獲取圖片路徑再利用UIImage的p_w_picpathWithContentsOfFile:方法加載圖片即可。例如如下代碼
NSString *path = [[NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"]
stringByAppendingPathComponent:@"fkjava.png"];
UIImage *p_w_picpath = [UIImage p_w_picpathWithContentsOfFile:path];
除此之外UIImage還可以加載多張圖片并按指定時(shí)間間隔依次顯示多張圖片這就可以非常方便地實(shí)現(xiàn)動(dòng)畫效果。UImage提供了如下方法來(lái)加載多張圖片實(shí)現(xiàn)動(dòng)畫。
+ animatedImageNamed:duration:根據(jù)指定的圖片名來(lái)加載系列圖片。例如調(diào)用該方法時(shí)的第一個(gè)參數(shù)名為butterfly該方法將會(huì)自動(dòng)加載butterfly0.png、butterfly1.png、butterfly2.png等圖片。
+ animatedImageWithImages:duration:該方法需要傳入一個(gè)NSArray作為多張動(dòng)畫圖片。該NSArray中的每個(gè)元素都是UIImage對(duì)象。
實(shí)例蝴蝶飛舞
下面的實(shí)例使用UIImage加載多張圖片來(lái)顯示蝴蝶揮舞翅膀的動(dòng)畫再用一個(gè)UIImageView控件來(lái)顯示該圖片接下來(lái)使用定時(shí)器不斷地改變UIImageView位置即可完成該實(shí)例。
創(chuàng)建一個(gè)Single View Application本實(shí)例直接使用代碼來(lái)創(chuàng)建UIImageView、UIImage因此不需要修界面設(shè)計(jì)文件。下面是該實(shí)例控制器類的實(shí)現(xiàn)部分的代碼。
程序清單codes/12/12.1/ImageTest/ImageTest/FKViewController.m
上面程序中的粗體字代碼使用UImage加載多張圖片并控制以動(dòng)畫形式播放多張圖片接下來(lái)創(chuàng)建了一個(gè)NSTimer定時(shí)器該定時(shí)器控制周期性地改變UIImageView的位置這樣即可實(shí)現(xiàn)本例的動(dòng)畫。
編譯、運(yùn)行該程序即可看到如圖12.1所示的效果。
圖12.1 蝴蝶飛舞實(shí)例
本文題目:瘋狂ios講義瘋狂連載之顯示動(dòng)畫
本文來(lái)源:http://aaarwkj.com/article30/isjppo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、微信公眾號(hào)、品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)公司、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)