資源描述:
《iOS開發(fā)-UIView之動畫效果的實現(xiàn)方法全集》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、IOS開發(fā)-UIView之動畫效果的實現(xiàn)方法全集[摘要]本文是對IOS開發(fā)-UIView之動畫效果的實現(xiàn)方法(合集)的講解,對學(xué)習(xí)IOS蘋果軟件開發(fā)有所幫助,與大家分享。前言:在開發(fā)APP中,我們會經(jīng)常使用到動畫效果。使用動畫可以讓我們的APP更酷更炫,最重要的是優(yōu)化用戶體驗,但取決于動畫的質(zhì)量。像QQ、微信、新浪微博等APP,動畫效果就很好了,至少我很喜歡它們的動畫,讓我使用起來感覺很順暢,心情很開朗。本文會介紹UIView效果的實現(xiàn)方法,非核心動畫。一、使用UIView類實現(xiàn)動畫基本寫法,代碼必須放在Beg
2、in和Commit之間:123[UIViewbeginAnimations:nilcontext:nil];//開始動畫//Code...[UIViewcommitAnimations];//提交動畫簡單例子:1234567891011[UIViewbeginAnimations:nilcontext:nil];//開始動畫[UIViewsetAnimationDuration:10.0];//動畫時長?/**?*?圖像向下移動?*/CGPointpoint=_imageView.center;point.y+
3、=150;[_imageViewsetCenter:point];?[UIViewcommitAnimations];//提交動畫同時運(yùn)行多個動畫效果:123456[UIViewbeginAnimations:nilcontext:nil];[UIViewsetAnimationDuration:3.0];[_imageViewsetAlpha:0.0];[UIViewcommitAnimations];?[UIViewbeginAnimations:nilcontext:nil];7891011[UIView
4、setAnimationDuration:3.0];CGPointpoint=_imageView.center;point.y+=150;[_imageViewsetCenter:point];[UIViewcommitAnimations];以上代碼實現(xiàn)的動畫效果為(同時執(zhí)行):1、圖像向下平移150像像2、設(shè)置圖像透明度為0。指定上下文:12345CGContextRefcontext=UIGraphicsGetCurrentContext();[UIViewbeginAnimations:nilcont
5、ext:context];[UIViewsetAnimationDuration:2.0];[_imageViewsetAlpha:0];[UIViewcommitAnimations];UIGraphicsGetCurrentContext():獲取當(dāng)前視圖的上下文其它方法及屬性:以下方法及屬性不為全部,只例舉部分(其它沒提及到的方法及屬性請自行嘗試,謝謝):123456789101112131415//開始動畫+(void)beginAnimations:(NSString*)animationIDcont
6、ext:(void*)context;?//提交動畫+(void)commitAnimations;?//設(shè)置動畫曲線,默認(rèn)是勻速進(jìn)行:+(void)setAnimationCurve:(UIViewAnimationCurve)curve;?//設(shè)置動畫時長:+(void)setAnimationDuration:(NSTimeInterval)duration;??//默認(rèn)為YES。為NO時跳過動畫效果,直接跳到執(zhí)行后的狀態(tài)。+(void)setAnimationsEnabled:(BOOL)enabled
7、;?161718192021222324252627282930313233343536373839404142434445//設(shè)置動畫延遲執(zhí)行(delay:秒為單位):+(void)setAnimationDelay:(NSTimeInterval)delay;??//動畫的重復(fù)播放次數(shù)+(void)setAnimationRepeatCount:(float)repeatCount;?//如果為YES,逆向(相反)動畫效果,結(jié)束后返回動畫逆向前的狀態(tài);默認(rèn)為NO:+(void)setAnimationRep
8、eatAutoreverses:(BOOL)repeatAutoreverses;?//設(shè)置動畫代理:+(void)setAnimationDelegate:(id)delegate;??//動畫將要開始時執(zhí)行方法××(必須要先設(shè)置動畫代理):+(void)setAnimationWillStartSelector:(SEL)selector;?//動畫已結(jié)束時執(zhí)行方法××(必須要先設(shè)