我在网上找到的这个小方法,被我举一反三使用的屡试不爽。
比如用在,当视图需要执行某一方法跳转到新的一个UIView上,从底层渐变浮到最上层。就是一个不错的视觉效果
或者当需要类似keyboard的效果从底下弹出来,点击再缩回去等等。
/*为了避免视图之间切换呆板问题,在IPHONE中引入了转换动画效果,分别在UIKit.framework和QuartzCore.framework之中。总的来说两者的播放方向都是left,right,up(top),down(bottom)四种,只不过后者的动画类型要比前者丰富一些。
好了,现在来看看代码中是怎样实现动画效果的(注意看颜色标注的区别):
CODE:
*/
/*
* @DO 视图切换动画
* @param sender(id)
*/
- (void) switchViews:(id)sender
{
// 准备动画
// [UIView beginAnimations:@"Curl"context:nil];
// 动画播放持续时间
// [UIView setAnimationDuration:1.25];
// 动画速度
// [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
// 准备动画
CATransition *animation = [CATransition animation];
//动画播放持续时间
[animation setDuration:0.25f];
//动画速度,何时快、慢
[animation setTimingFunction:[CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseIn]];
if (self.showViewController.view.superview == nil)
{
// 动画方向
// [UIView setAnimationTransition: UIViewAnimationTransitionCurlUp
// forView:self.view cache:YES];
/*动画效果
(
kCATransitionFade淡出|
kCATransitionMoveIn覆盖原图|
kCATransitionPush推出|
kCATransitionReveal底部显出来
)
*/
[animation setType:kCATransitionReveal];
/*动画方向
(
kCATransitionFromRight|
kCATransitionFromLeft|
kCATransitionFromTop|
kCATransitionFromBottom
)
*/
[animation setSubtype:kCATransitionFromBottom];
[self.view.layer addAnimation:animation forKey:@"Reveal"];
[saveViewController.view removeFromSuperview];
[self.view insertSubview:showViewController.view atIndex:];
}
else
{
// 动画方向
// [UIView setAnimationTransition: UIViewAnimationTransitionCurlDown
// forView:self.view cache:YES];
/*动画效果
(
suckEffect三角|
rippleEffect水波|
pageCurl上翻页|
pageUnCurl下翻页|
oglFlip上下翻转|
)
*/
[animation setType:@"suckEffect"];
//开始动画
[self.view.layer addAnimation:animation forKey:@"suckEffect"];
[showViewController.view removeFromSuperview];
[self.view insertSubview:saveViewController.view atIndex:];
}
// 结束动画
// [UIView commitAnimations];
}
/*
其中suckEffect三角 rippleEffect水波 pageCurl上翻页 pageUnCurl下翻页 oglFlip上下翻转这五类动画很少用,主要有两点:1、后者还没有经过官方的发布,很多资料都没有去介绍;2、考虑到其随时都会被官方更改,为着程序的稳定性等因素不去采用。 最后提下,UIKIT.frame中的动画是对UIView的而后者是针对视图的属性layer来实现的,后者与视图动画比起来,具备更大的优势,更容易进行转换,倾斜,放大,缩小等等。
*/

IOS 视图切换动画的更多相关文章

  1. iOS页面切换动画实现方式。

    iOS页面切换动画实现方式. 1.使用UIView animateWithDuration:animations:completion方法 Java代码 [UIView animateWithDura ...

  2. iOS 视图,动画渲染机制探究

    腾讯Bugly特约作者:陈向文 终端的开发,首当其冲的就是视图.动画的渲染,切换等等.用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅.UI就是 App 的门面,它的体验 ...

  3. iOS:视图切换的第一种方式:模态窗口

    一.UIModalController:模态窗口(一个控制器模态出另一个控制器的模态窗口) 当我们在view controller A中模态显示view controller B的时候,A就充当pre ...

  4. ios 视图切换翻页效果

    本文写的是视图切换,涉及到的内容有 1.实现代码添加Navigation Bar  Toolbal: 2.实现在Navigation Bar和Toolbar上用代码添加Bar Button Item: ...

  5. ios视图切换之push与present混用

    在变成过程中,经常遇到两个视图控制器之间的切换,导航控制器即UINaVigation是最常用的一种,有时为了某些效果又需要进行模态切换,即present. 我们的布局经常是在window上加一个nav ...

  6. iOS:视图切换的第二种方式:UINavigationController导航栏控制器

    UINavigationController:一个以栈的形式管理多视图的容器,负责子控制器之间的跳转.由于以栈的方式管理视图,各个视图的切换就是压栈和出栈操作,所以出栈后的视图会立即销毁. 介绍: & ...

  7. sencha touch 监听视图切换动画(animation)

    var animation = this.getLayout().getAnimation(); //添加监听 animation.on({ scope: this, animationend: 'o ...

  8. android视图切换动画:ViewAnimator类及其子类

    类图:

  9. Android的Activity切换动画特效库SwitchLayout,视图切换动画库,媲美IOS

    由于看了IOS上面很多开发者开发的APP的视图界面切换动画体验非常好,这些都是IOS自带的,但是Android的Activity等视图切换动画并没有提供原生的,所以特此写了一个可以媲美IOS视图切换动 ...

随机推荐

  1. mysql慢查询Slow Query Log和未使用索引(Not Using Indexes)查询配置和使用

    mysql的“慢查询”指的是超过了允许的最大查询时间(long_query_time)的sql语句,而“未使用索引”查询顾名思义就是查询语句没有使用到索引的sql语句. 慢查询配置和使用 在msyql ...

  2. PyQt多窗口调用

    经常有人问到如何在一个主窗口中打开一个对话框,然后在确认对话框之后,开启另一个窗口进行后续操作,要求主窗口和最终的窗口之间都能响应用户操作,也就是非模态窗口.随手写了几行代码,简要示意. :::pyt ...

  3. JAVA大数运算

    java大数是个好东西,用起来方便,代码短. 代码如下: import java.util.*; import java.math.*; public class Main { public stat ...

  4. commondline 之一 常识

    用法: 执行类执行 jar 文件 java [-options] class [args...]java [-options] -jar jarfile [args...] 常识:javac Some ...

  5. css样式被覆盖解决方案

    刚才写zenktodo的时候,通过动态添加class的方式修改一个div的样式,总是不起作用. #navigator { height: 100%; width: 200; position: abs ...

  6. Vagrant 快速入门

    1. Vagrant功能: Vagrant uses Oracle’s VirtualBox to build configurable, lightweight, and portable virt ...

  7. 网络虚拟化技术 TUN/TAP MACVLAN MACVTAP

    TUN 设备 TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便得模拟网络行为.先来看看物理设备是如何工作的:

  8. C# DateTime 日期加1天 减一天 加一月 减一月 等方法

    //今天 DateTime.Now.Date.ToShortDateString(); //昨天,就是今天的日期减一 DateTime.Now.AddDays(-).ToShortDateString ...

  9. SAP Connector 3.0 .Net 开发

    在VS2010中使用控制台应用程序使用SAP Connector 3.0开发时,当程序运行到实例化RfcConfigParameters时报错 (RfcConfigParametersrefcon = ...

  10. Codeforces Round #311 (Div. 2)B. Pasha and Tea 水题

    B. Pasha and Tea Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/557/prob ...