日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS开发UI篇—iOS开发中三种简单的动画设置

發(fā)布時間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发UI篇—iOS开发中三种简单的动画设置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【在ios開發(fā)中,動畫是廉價的】

一、首尾式動畫

代碼示例:

// beginAnimations表示此后的代碼要“參與到”動畫中 [UIView beginAnimations:nil context:nil]; //設(shè)置動畫時長[UIView setAnimationDuration:2.0];self.headImageView.bounds = rect;// commitAnimations,將beginAnimation之后的所有動畫提交并生成動畫[UIView commitAnimations];

說明:如果只是修改控件的屬性,使用首尾式動畫還是比較方便的,但是如果需要在動畫完成后做后續(xù)處理,就不是那么方便了

二、block代碼塊動畫

代碼示例:

//簡單的動畫效果[UIView animateWithDuration:2.0 animations:^{showlab.alpha=0;} completion:^(BOOL finished) {[showlab removeFromSuperview];}];

說明:

(1)在實(shí)際的開發(fā)中更常用的時block代碼塊來處理動畫操作。

(2)塊動畫相對來說比較靈活,尤為重要的是能夠?qū)赢嬒嚓P(guān)的代碼編寫在一起,便于代碼的閱讀和理解.

三、序列幀動畫(以一個簡單的TOM貓動畫示例)

導(dǎo)入提前準(zhǔn)備好的素材,對UIImageview和button按鈕進(jìn)行連線。

代碼示例:

- (IBAction)eat {NSMutableArray *arrayM=[NSMutableArray array];for (int i=0; i<40; i++) {[arrayM addObject:[UIImage imageNamed:[NSString stringWithFormat:@"eat_%02d.jpg",i]]];}//設(shè)置動畫數(shù)組 [self.tom setAnimationImages:arrayM];//設(shè)置動畫播放次數(shù)[self.tom setAnimationRepeatCount:1];//設(shè)置動畫播放時間[self.tom setAnimationDuration:40*0.075];//開始動畫 [self.tom startAnimating]; }

點(diǎn)擊按鈕,即可執(zhí)行動畫,實(shí)現(xiàn)效果截圖如下:

四、補(bǔ)充知識

1. Images.xcassets中的素材

(1)只支持png格式的圖片

(2) 圖片只支持[UIImage imageNamed]的方式實(shí)例化,但是不能從Bundle中加載

(3) 在編譯時,Images.xcassets中的所有文件會被打包為Assets.car的文件

2. UIImageView的序列幀動畫(需要考慮程序性能,釋放數(shù)據(jù))

// 0. 是否正在動畫

[self.tom isAnimating];

// 1. 設(shè)置圖片的數(shù)組

[self.tom setAnimationImages:arrayM];

// 2. 設(shè)置動畫時長,默認(rèn)每秒播放30張圖片

[self.tom setAnimationDuration:arrayM.count * 0.075];

// 3. 設(shè)置動畫重復(fù)次數(shù),默認(rèn)為0,無限循環(huán)

[self.tom setAnimationRepeatCount:1];

// 4. 開始動畫

[self.tom startAnimating];

// 5. 動畫播放完成后,清空動畫數(shù)組

[self.tom performSelector:@selector(setAnimationImages:) withObject:nilafterDelay:self.tom.animationDuration];

3. UIImage imageNamed

(1)在圖片使用完成后,不會直接被釋放掉,具體釋放時間由系統(tǒng)決定,適用于圖片小,常用的圖像處理

(2)如果要釋放快速釋放圖片,可以使用[UIImage imageWithContentsOfFile:path]實(shí)例化圖像

4. 方法重構(gòu)的策略

(1) 將具有共性的代碼復(fù)制到一個新的方法

(2)根據(jù)不同的調(diào)用情況,增加方法的參數(shù)

提示:在寫程序時不要著急重構(gòu),有時候把代碼先寫出來,更容易看清楚如何重構(gòu)才會更好

5. Bundle(包)中的圖片素材

往項(xiàng)目中拖拽素材時,通常選擇

(1) Destination: 勾選

(2) Folders:

1)選擇第一項(xiàng):黃色文件夾

注意點(diǎn):Xcode中分文件夾,Bundle中所有所在都在同一個文件夾下,因此,不能出現(xiàn)文件重名的情況

特點(diǎn):

a.可以直接使用[NSBundle mainBundle]作為資源路徑,效率高!

b.可以使用[UIImage imageNamed:]加載圖像

2)選擇第二項(xiàng):藍(lán)色文件夾

注意點(diǎn):Xcode中分文件夾,Bundle中同樣分文件夾,因此,可以出現(xiàn)文件重名的情況

特點(diǎn):

a.需要在[NSBundle mainBundle]的基礎(chǔ)上拼接實(shí)際的路徑,效率較差

b.不能使用[UIImage imageNamed:]加載圖

總結(jié)

以上是生活随笔為你收集整理的iOS开发UI篇—iOS开发中三种简单的动画设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。