iOS开发UI篇—iOS开发中三种简单的动画设置
【在ios開(kāi)發(fā)中,動(dòng)畫(huà)是廉價(jià)的】
一、首尾式動(dòng)畫(huà)
代碼示例:
// beginAnimations表示此后的代碼要“參與到”動(dòng)畫(huà)中 [UIView beginAnimations:nil context:nil]; //設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)[UIView setAnimationDuration:2.0];self.headImageView.bounds = rect;// commitAnimations,將beginAnimation之后的所有動(dòng)畫(huà)提交并生成動(dòng)畫(huà)[UIView commitAnimations];說(shuō)明:如果只是修改控件的屬性,使用首尾式動(dòng)畫(huà)還是比較方便的,但是如果需要在動(dòng)畫(huà)完成后做后續(xù)處理,就不是那么方便了
二、block代碼塊動(dòng)畫(huà)
代碼示例:
//簡(jiǎn)單的動(dòng)畫(huà)效果[UIView animateWithDuration:2.0 animations:^{showlab.alpha=0;} completion:^(BOOL finished) {[showlab removeFromSuperview];}];說(shuō)明:
(1)在實(shí)際的開(kāi)發(fā)中更常用的時(shí)block代碼塊來(lái)處理動(dòng)畫(huà)操作。
(2)塊動(dòng)畫(huà)相對(duì)來(lái)說(shuō)比較靈活,尤為重要的是能夠?qū)?dòng)畫(huà)相關(guān)的代碼編寫(xiě)在一起,便于代碼的閱讀和理解.
三、序列幀動(dòng)畫(huà)(以一個(gè)簡(jiǎn)單的TOM貓動(dòng)畫(huà)示例)
導(dǎo)入提前準(zhǔn)備好的素材,對(duì)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è)置動(dòng)畫(huà)數(shù)組 [self.tom setAnimationImages:arrayM];//設(shè)置動(dòng)畫(huà)播放次數(shù)[self.tom setAnimationRepeatCount:1];//設(shè)置動(dòng)畫(huà)播放時(shí)間[self.tom setAnimationDuration:40*0.075];//開(kāi)始動(dòng)畫(huà) [self.tom startAnimating]; }點(diǎn)擊按鈕,即可執(zhí)行動(dòng)畫(huà),實(shí)現(xiàn)效果截圖如下:
四、補(bǔ)充知識(shí)
1. Images.xcassets中的素材
(1)只支持png格式的圖片
(2) 圖片只支持[UIImage imageNamed]的方式實(shí)例化,但是不能從Bundle中加載
(3) 在編譯時(shí),Images.xcassets中的所有文件會(huì)被打包為Assets.car的文件
2. UIImageView的序列幀動(dòng)畫(huà)(需要考慮程序性能,釋放數(shù)據(jù))
// 0. 是否正在動(dòng)畫(huà)
[self.tom isAnimating];
// 1. 設(shè)置圖片的數(shù)組
[self.tom setAnimationImages:arrayM];
// 2. 設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng),默認(rèn)每秒播放30張圖片
[self.tom setAnimationDuration:arrayM.count * 0.075];
// 3. 設(shè)置動(dòng)畫(huà)重復(fù)次數(shù),默認(rèn)為0,無(wú)限循環(huán)
[self.tom setAnimationRepeatCount:1];
// 4. 開(kāi)始動(dòng)畫(huà)
[self.tom startAnimating];
// 5. 動(dòng)畫(huà)播放完成后,清空動(dòng)畫(huà)數(shù)組
[self.tom performSelector:@selector(setAnimationImages:) withObject:nilafterDelay:self.tom.animationDuration];
3. UIImage imageNamed
(1)在圖片使用完成后,不會(huì)直接被釋放掉,具體釋放時(shí)間由系統(tǒng)決定,適用于圖片小,常用的圖像處理
(2)如果要釋放快速釋放圖片,可以使用[UIImage imageWithContentsOfFile:path]實(shí)例化圖像
4. 方法重構(gòu)的策略
(1) 將具有共性的代碼復(fù)制到一個(gè)新的方法
(2)根據(jù)不同的調(diào)用情況,增加方法的參數(shù)
提示:在寫(xiě)程序時(shí)不要著急重構(gòu),有時(shí)候把代碼先寫(xiě)出來(lái),更容易看清楚如何重構(gòu)才會(huì)更好
5. Bundle(包)中的圖片素材
往項(xiàng)目中拖拽素材時(shí),通常選擇
(1) Destination: 勾選
(2) Folders:
1)選擇第一項(xiàng):黃色文件夾
注意點(diǎn):Xcode中分文件夾,Bundle中所有所在都在同一個(gè)文件夾下,因此,不能出現(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开发中三种简单的动画设置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 成熟的夜间模式解决方案
- 下一篇: CentOS7.0 安装nginx-1.