动画(二)
2015-11-02 本文已影响698人
土鳖不土
这期动画是对基础动画的一个小结。
动画的基本属性请看:iOS动画一
说到总结基础动画再总结下属性吧。
想要的动画的动画属性
typedef enum : NSUInteger {
Fade = 1, //淡入淡出
Push, //推挤
Reveal, //揭开
MoveIn, //覆盖
Cube, //立方体
SuckEffect, //吮吸
OglFlip, //翻转
RippleEffect, //波纹
PageCurl, //翻页
PageUnCurl, //反翻页
CameraIrisHollowOpen, //开镜头
CameraIrisHollowClose, //关镜头
CurlDown, //下翻页
CurlUp, //上翻页
FlipFromLeft, //左翻转
FlipFromRight, //右翻转
} AnimationType;
动画顺序速率的快慢
kCAMediaTimingFunctionLinear 线性,即匀速
kCAMediaTimingFunctionEaseIn 先慢后快
kCAMediaTimingFunctionEaseOut 先快后慢
kCAMediaTimingFunctionEaseInEaseOut 先慢后快再慢
kCAMediaTimingFunctionDefault 实际效果是动画中间比较快.
动画执行的方向
kCATransitionFromLeft
kCATransitionFromBottom;
kCATransitionFromRight;
kCATransitionFromTop;
屏幕快照 2015-11-02 13.34.33.png
#pragma CATransition动画剥离 传入一个1.过度动画类型和2.动画方向,还有要在3.哪个视图上显示。
- (void) transitionWithType:(NSString *) type WithSubtype:(NSString *) subtype ForView : (UIView *) view
{
//创建CATransition对象
CATransition *animation = [CATransition animation];
//设置运动时间
animation.duration = JFDURATION;
//设置运动type
animation.type = type;
if (subtype != nil) {
//设置子类
animation.subtype = subtype;
}
//设置运动速度
animation.timingFunction = UIViewAnimationOptionCurveEaseInOut;
[view.layer addAnimation:animation forKey:@"animation"];
}
#pragma UIView实现动画
- (void) animationWithView : (UIView *)view WithAnimationTransition : (UIViewAnimationTransition) transition
{
[UIView animateWithDuration:JFDURATION animations:^{
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:transition forView:view cache:YES];
}];
}
基础动画效果图.gif
2.gif
注本博文是参考一个小青玉伏案 的博友,在此感谢他的总结。
具体实现已经在源码里面解释的很清楚了,不懂的话可以直接评论或者私信。