美文网首页
iOS开发之各种动画各种页面切面效果

iOS开发之各种动画各种页面切面效果

作者: UILabelkell | 来源:发表于2016-03-08 22:09 被阅读96次

今天主要用到的动画类是CALayer下的CATransition

一.封装动画方法

1.用CATransition实现动画的封装方法如下,每句代码是何意思,请看注释之。
<pre>#pragma CATransition动画实现

  • (void) transitionWithType:(NSString *) type WithSubtype:(NSString *) subtype ForView : (UIView *) view
    {
    //创建CATransition对象
    CATransition *animation = [CATransition animation];

    //设置运动时间
    animation.duration = DURATION;

    //设置运动type
    animation.type = type;
    if (subtype != nil) {

      //设置子类
      animation.subtype = subtype;
    

    }

    //设置运动速度
    animation.timingFunction = UIViewAnimationOptionCurveEaseInOut;

    [view.layer addAnimation:animation forKey:@"animation"];
    }
    </pre>

代码说明:

CATransition常用的属性如下:

duration:设置动画时间
type:稍后下面会详细的介绍运动类型
subtype:和type匹配使用,指定运动的方向,下面也会详细介绍
timingFunction :动画的运动轨迹,用于变化起点和终点之间的插值计算,形象点说它决定了动画运行的节奏,比如是均匀变化(相同时间变化量相同)还是先快后慢,先慢后快还是先慢再快再慢。  
动画的开始与结束的快慢,有五个预置分别为(下同):

kCAMediaTimingFunctionLinear 线性,即匀速
kCAMediaTimingFunctionEaseIn 先慢后快
kCAMediaTimingFunctionEaseOut 先快后慢
kCAMediaTimingFunctionEaseInEaseOut 先慢后快再慢
kCAMediaTimingFunctionDefault 实际效果是动画中间比较快.
2.用UIView的block回调实现动画的代码封装 
<pre> #pragma UIView实现动画

  • (void) animationWithView : (UIView *)view WithAnimationTransition : (UIViewAnimationTransition) transition
    {
    [UIView animateWithDuration:DURATION animations:^{
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationTransition:transition forView:view cache:YES];
    }];
    }</pre>

3.改变View的背景图,便于切换时观察
<pre> #pragma 给View添加背景图
-(void)addBgImageWithImageName:(NSString *) imageName
{
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:imageName]];
}</pre>

相关文章

网友评论

      本文标题:iOS开发之各种动画各种页面切面效果

      本文链接:https://www.haomeiwen.com/subject/oomzkttx.html