zoukankan      html  css  js  c++  java
  • CATransition

     CATransition *transition = [CATransition animation];
        transition.duration = 1.0f;         /* 间隔时间*/
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; /* 动画的开始与结束的快慢*/
        transition.type = @"rippleEffect";  /* 各种动画效果*/

    //@"cube" @"moveIn" @"reveal" @"fade"(default) @"pageCurl" @"pageUnCurl" @"suckEffect" @"rippleEffect" @"oglFlip"

        transition.subtype = kCATransitionFromRight;   /* 动画方向*/
        transition.delegate = self;
        [navigationController.view.layer /* 在想添加CA动画的VIEW的层上添加此代码*/addAnimation:transition forKey:nil]; 

    //另外加一句,transition在申请时用的是+方法,所以不需要自己进行release ,在层上添加后不要认为retainCount已经+1,就还要release

    //实际上CATransition类中还有一个属性是removedOnCompletion,是此动画执行完后会自动remove,默认值为true

    实现iphone漂亮的动画效果主要有两种方法,一种是UIView层面的,一种是使用CATransition进行更低层次的控制,

    第一种是UIView,UIView方式可能在低层也是使用CATransition进行了封装,它只能用于一些简单的、常用的效果展现,这里写一个常用的示例代码,供大家参考。

    [UIView beginAnimations:@"Curl"context:nil];//动画开始

    [UIView setAnimationDuration:0.75];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:myview cache:YES];
    [myview removeFromSuperview];
    [UIView commitAnimations];

    第二种方式相对复杂一些,但如果更好的进行控制,还是使用这种方法吧,基本使用方法可以看一下如下例子:

    CATransition *animation = [CATransition animation];

    [animation setDuration:1.25f];
    [animation setTimingFunction:[CAMediaTimingFunction
    functionWithName:kCAMediaTimingFunctionEaseIn]];
    [animation setType:kCATransitionReveal];
    [animation setSubtype: kCATransitionFromBottom];
    [self.view.layer addAnimation:animation forKey:@"Reveal"];
    
    
    这里使用了setType与setSubtype组合,这使用个比较保险,因为他的参数就是官方API里定义的,他们的参数说明可以参考如下:
    setType:可以返回四种类型:
    kCATransitionFade淡出
    kCATransitionMoveIn覆盖原图
    kCATransitionPush推出
    kCATransitionReveal底部显出来
    setSubtype:也可以有四种类型:
    kCATransitionFromRight;
    kCATransitionFromLeft(默认值)
    kCATransitionFromTop;
    kCATransitionFromBottom
    
    
    还有一种设置动画类型的方法,不用setSubtype,只用setType
    [animation setType:@"suckEffect"];
    
    
    这里的suckEffect就是效果名称,可以用的效果主要有:
    pageCurl   向上翻一页
    pageUnCurl 向下翻一页
    rippleEffect 滴水效果
    suckEffect 收缩效果,如一块布被抽走
    cube 立方体效果
    oglFlip 上下翻转效果
  • 相关阅读:
    打造基于CentOS7的xfce最简工作环境
    Linux下C程序的编辑,编译和运行以及调试
    修正 XE6 TListView 上方 SearchBok 右边的清除钮显示
    TabControl 显示彩色的图示 (XE6 Firemonkey)
    TSwitch 中文简繁显示支持(XE6 Android)
    改变 TMemo 的背景颜色 (Firemonkey)
    修正 XE5 Android 键盘三个问题
    Delphi 收藏
    展示 Popup 的使用方法
    ListView 下拉更新 (支持 Android)
  • 原文地址:https://www.cnblogs.com/lmg4819/p/4803008.html
Copyright © 2011-2022 走看看