瘋狂ios講義瘋狂連載之顯示動畫

UIImage專門用于顯示各種位圖該類支持表12.1所示的各種圖片格式。

10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有郎溪免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

瘋狂ios講義瘋狂連載之顯示動畫

當(dāng)系統(tǒng)內(nèi)存緊張時UIImage會將圖片數(shù)據(jù)從UIImage對象中清理出去來以節(jié)省系統(tǒng)內(nèi)存這里的清理行為只是清理UIImage內(nèi)部存儲的圖片數(shù)據(jù)并不清理UIImage對象本身。當(dāng)程序使用一個圖片數(shù)據(jù)被清理過的UIImage對象時該UIImage將會自動從原始的圖片文件中加載圖片數(shù)據(jù)。

盡量避免使用UIImage加載過大如大于1024像素×1024像素的圖片如果程序?qū)嵲谛枰虞d這種大圖片可以考慮將該圖片分解成多張小圖片進(jìn)行加載。

如果用UIImage來顯示靜止的圖片UIImage提供了如下常用的類方法。

+ p_w_picpathNamed:該方法用于加載指定文件名對應(yīng)的圖片。該方法有緩存機(jī)制如果該方法試圖加載的文件不存在它才會去加載圖片文件并緩存它如果系統(tǒng)已經(jīng)緩存過指定的圖片該方法將直接使用已緩存的圖片。

當(dāng)程序需要頻繁地加載、卸載圖片文件時不應(yīng)該使用該方法來加載圖片。

+ p_w_picpathWithContentsOfFile:該方法用于加載指定文件名對應(yīng)的圖片。

+ p_w_picpathWithData:該方法用于根據(jù)NSData中封裝的圖片數(shù)據(jù)來創(chuàng)建圖片。

+ p_w_picpathWithData:scale:該方法用于根據(jù)NSData中封裝的圖片數(shù)據(jù)來創(chuàng)建圖片并按指定的縮放因子對圖片進(jìn)行縮放。

+ p_w_picpathWithCGImage:該方法用于根據(jù)指定的CGImageRef對象來創(chuàng)建UIImage。

+ p_w_picpathWithCGImage:scale:orientation:該方法用于根據(jù)指定的CGImageRef對象來創(chuàng)建UIImage并將圖片縮放到指定比例。該方法的最后一個參數(shù)指定對圖片執(zhí)行旋轉(zhuǎn)、鏡像等變換操作。

上面這些方法涉及一個CGImageRef這是處理位圖的另一個API本節(jié)稍后會詳細(xì)介紹。

通過上面介紹的這些方法UIImage可以加載不同數(shù)據(jù)源的圖片包括加載應(yīng)用程序資源包的圖片、加載網(wǎng)絡(luò)圖片和手機(jī)本地圖片。下面對UIImage需要讀取的圖片進(jìn)行簡單分類。

1. 從應(yīng)用資源包讀取圖片

如果程序需要從應(yīng)用資源包讀取圖片可借助UIImage的p_w_picpathNamed:方法進(jìn)行讀取例如如下代碼

UIImage* p_w_picpath=[UIImage p_w_picpathNamed:@"fkjava.png"];

2. 從網(wǎng)絡(luò)讀取圖片

如果需要從網(wǎng)絡(luò)讀取圖片可借助NSData的方法來加載指定URL對應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)然后利用UImage的p_w_picpathWithData:方法來加載圖片即可。例如如下代碼

NSURL* url = [NSURL URLWithString:@"http://www.crazyit.org/logo.jpg"];

NSData* data = [NSData dataWithContentsOfURL:url]

UIImage* p_w_picpath = [UIImage p_w_picpathWithData:data];

3. 從手機(jī)本地讀取圖片

如果需要讀取手機(jī)本地的圖片只要先獲取圖片路徑再利用UIImage的p_w_picpathWithContentsOfFile:方法加載圖片即可。例如如下代碼

NSString *path = [[NSHomeDirectory()

stringByAppendingPathComponent:@"Documents"]

stringByAppendingPathComponent:@"fkjava.png"];

UIImage *p_w_picpath = [UIImage p_w_picpathWithContentsOfFile:path];

除此之外UIImage還可以加載多張圖片并按指定時間間隔依次顯示多張圖片這就可以非常方便地實現(xiàn)動畫效果。UImage提供了如下方法來加載多張圖片實現(xiàn)動畫。

+ animatedImageNamed:duration:根據(jù)指定的圖片名來加載系列圖片。例如調(diào)用該方法時的第一個參數(shù)名為butterfly該方法將會自動加載butterfly0.png、butterfly1.png、butterfly2.png等圖片。

+ animatedImageWithImages:duration:該方法需要傳入一個NSArray作為多張動畫圖片。該NSArray中的每個元素都是UIImage對象。

實例蝴蝶飛舞

下面的實例使用UIImage加載多張圖片來顯示蝴蝶揮舞翅膀的動畫再用一個UIImageView控件來顯示該圖片接下來使用定時器不斷地改變UIImageView位置即可完成該實例。

創(chuàng)建一個Single View Application本實例直接使用代碼來創(chuàng)建UIImageView、UIImage因此不需要修界面設(shè)計文件。下面是該實例控制器類的實現(xiàn)部分的代碼。

程序清單codes/12/12.1/ImageTest/ImageTest/FKViewController.m

瘋狂ios講義瘋狂連載之顯示動畫

上面程序中的粗體字代碼使用UImage加載多張圖片并控制以動畫形式播放多張圖片接下來創(chuàng)建了一個NSTimer定時器該定時器控制周期性地改變UIImageView的位置這樣即可實現(xiàn)本例的動畫。

編譯、運(yùn)行該程序即可看到如圖12.1所示的效果。

瘋狂ios講義瘋狂連載之顯示動畫

圖12.1 蝴蝶飛舞實例


本文題目:瘋狂ios講義瘋狂連載之顯示動畫
本文來源:http://muchs.cn/article30/isjppo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、微信公眾號、品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈網(wǎng)站設(shè)計公司、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)