【转】IOS动画的实现,其实很简单
動畫效果提供了狀態或頁面轉換時流暢的用戶體驗,在iOS系統中,咱們不需要自己編寫繪制動畫的代碼,Core Animation提供了豐富的api來實現你需要的動畫效果。
UIKit只用UIView來展示動畫,動畫支持UIView下面的這些屬性改變:
frame??
bounds??
center??
transform??
alpha?
backgroundColor?
contentStretch
1、commitAnimations方式使用UIView動畫
?
下面是點擊改變后的效果(兩種):
?
動畫的常量有一下四種
?
1.2 交換本視圖控制器中2個view位置
[self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:0];
先添加兩個view ,一個redview? 一個yellowview
?
?
?
這樣看起來就像兩頁一樣了。
1.3 、[UIView setAnimationDidStopSelector:@selector(animationFinish:)];
在commitAnimations消息之前,可以設置動畫完成后的回調,設置方法是:
[UIView setAnimationDidStopSelector:@selector(animationFinish:)];
2、使用:CATransition
transition.type 的類型可以有
淡化、推擠、揭開、覆蓋
NSString * const kCATransitionFade;
NSString * const kCATransitionMoveIn;
NSString * const kCATransitionPush;
NSString * const kCATransitionReveal;
這四種,
transition.subtype?
也有四種
NSString * const kCATransitionFromRight;
NSString * const kCATransitionFromLeft;
NSString * const kCATransitionFromTop;
NSString * const kCATransitionFromBottom;
? 2.2 私有的類型的動畫類型:
立方體、吸收、翻轉、波紋、翻頁、反翻頁、鏡頭開、鏡頭關。
?
下圖是第一個cube立方體的效果:
?
2.3 CATransition的 startProgress? endProgress屬性
這兩個屬性是float類型的。
可以控制動畫進行的過程,可以讓動畫停留在某個動畫點上,值在0.0到1.0之間。endProgress要大于等于startProgress。
比如上面的立方體轉到,可以設置endProgress= 0.5,讓動畫停留在轉動一般的位置。
上面這些私有的動畫效果,在實際應用中要謹慎使用。因為在app store審核時可能會以為這些動畫效果而拒絕通過。
3、UIView的 + (void)animateWithDuration
:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
方法。
這個方法是在iOS4.0之后才支持的。
比 1 里的UIView的方法簡潔方便使用。
DidView里添加moveView。
然后用UIView animateWithDuration動畫移動,移動動畫完畢后添加一個Label。
3.2、 animateWithDuration的嵌套使用
這個嵌套的效果是先把view變成透明,在從透明變成不透明,重復2.5次透明到不透明的效果。 文中例子的代碼:AnimateDemo
轉載于:https://www.cnblogs.com/wengzilin/p/3273355.html
總結
以上是生活随笔為你收集整理的【转】IOS动画的实现,其实很简单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《windows核心编程》 17章 内存
- 下一篇: Levenberg-Marquardt快