`
janedoneway
  • 浏览: 581922 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

浅析IOS视图切换动画效果

 
阅读更多

From: http://mmz06.blog.163.com/blog/static/12141696201151925118682/

 

引入

简要说明IOS中动画的实现……

说明

为了避免视图之间切换呆板问题,在IPHONE中引入了转换动画效果,分别在UIKit.frameworkQuartzCore.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.viewatIndex:0];

    }

    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:0];

    }

// 结束动画

// [UIView commitAnimations];

}

 

    其中suckEffect三角 rippleEffect水波 pageCurl上翻页 pageUnCurl下翻页 oglFlip上下翻转这五类动画很少用,主要有两点:1、后者还没有经过官方的发布,很多资料都没有去介绍;2、考虑到其随时都会被官方更改,为着程序的稳定性等因素不去采用。    最后提下,UIKIT.frame中的动画是对UIView的而后者是针对视图的属性layer来实现的,后者与视图动画比起来,具备更大的优势,更容易进行转换,倾斜,放大,缩小等等。

分享到:
评论

相关推荐

    浅析iOS多视图滑动点击切换的集成

    多视图滑动点击切换这个视图在很多App都有用到,我对这个View进行了封装,外界只需要调用一个接口,就能实现这个效果,使用方法和系统的tabbarController很相似。 外界只需要调用下面这个接口即可集成. /** * 添加...

    智能导播助力2021春晚新媒体节目创新——浅析人工智能切换技术的应用.pdf

    智能导播助力2021春晚新媒体节目创新——浅析人工智能切换技术的应用.pdf

    深入浅析IOS中UIControl

    响应者链允许事件沿着视图层级结构进行传播,使得即使用户触摸的位置不在某个具体视图内,也可以由其父视图捕获并处理。 UIControl是许多常见用户界面元素,如UIButton、UISwitch、UITextField等的基类。它提供了一...

    浅析iOS中视频播放的几种方案

    在iOS开发中,视频播放是常见的需求,而iOS提供了多种方式来实现这一功能。本文将对AVPlayer和MPMoviePlayerController、MPMoviePlayerViewController三种主要的视频播放方案进行详细解析,探讨它们的优缺点以及实现...

    ios-MVVV的浅理解.zip

    **iOS中的MVVM架构浅析** MVVM(Model-View-ViewModel)是一种设计模式,源自微软的WPF和XAML平台,近年来在iOS开发中也逐渐流行起来,尤其是在Swift和Kotlin等现代编程语言中。MVVM的核心理念是将业务逻辑、数据...

    浅析iOS的Xcconfig

    1. 点击工程文件,切换到Info Tab,定位到Configuration选项,点开Configuration前面的小箭头,看到了分为Debug和Release。 2. 分别点击Debug和Release选择对应的xcconfig文件(Debug对应debug.xcconfig,Release...

    浅析iOS界面设计方法

    今天就以iPhone为起点,让咱们来分析一下iOS界面的设计方法开始前先整理下思路,目前移动互联网的界面设计有2种:即移动webUI和移动客户端UI。对于设计而言,移动web满足人们高效快速的信息浏览,注重排版和信息整合...

    浅析SQL Server 2000索引视图:使用索引视图提高查询性能.pdf

    SQL Server 2000中的索引视图是一种新的数据库功能,它允许在视图中创建索引,从而存储视图的结果集并对其进行索引处理。索引视图在某些情况下能够显著提高数据库查询性能,尤其是在涉及大量行的联接和聚合操作时。...

    浅析实用性中积极效果的审查标准

    浅析实用性中积极效果的审查标准

    浅析iOS中的浅拷贝和深拷贝(copy和mutableCopy)

    本文将深入浅析iOS中的`copy`和`mutableCopy`方法,以及它们与`retain`操作的区别。 首先,`copy`方法用于创建一个新的不可变对象,其内容与原对象相同。这意味着如果原始对象是不可变的(如`NSString`),`copy`会...

    浅析iOS给图片加水印的方法

    在iOS开发中,为图片添加水印是一项常见的需求,尤其在社交媒体应用中,用来标识或保护图片的版权。本文将详细讲解如何在iOS平台上实现这一功能。 首先,我们需要创建一个UIImage的类别(Category),以扩展UIImage...

    浅析利用Oracle物化视图对查询优化.pdf

    尤其在大数据、云计算、物联网等概念兴起的背景下,如何利用Oracle物化视图进行查询优化,以应对上亿级别的数据量,是本文探讨的重点。 首先,物化视图与普通视图的概念区别是理解查询优化的起点。普通视图(View)...

    浅析iOS应用开发中线程间的通信与线程安全问题

    在iOS应用开发中,线程间的通信和线程安全是多线程编程中至关重要的概念。线程通信是指在一个进程中,不同的线程之间如何交换信息和协调工作,而线程安全则是指当多个线程访问同一块资源时,能够正确处理并发情况,...

    浅析SQL Server 2000分布式分区视图.pdf

    分布式分区视图是SQL Server数据库中的一个重要特性,它通过分布式查询技术允许用户访问跨越多个服务器的水平分区数据。在SQL Server 2000中,微软对分布式分区视图的功能进行了进一步的改进,使其能够直接通过视图...

    浅析IOS中播放gif动态图的方法

     在iOS开发中,UIImageView类专门来负责图片数据的渲染,并且UIImageView也有帧动画的方法来播放一组图片,但是对于gif类型的数据,UIImageView中并没有现成的接口提供给开发者使用,在iOS中一般可以通过两种方式来...

Global site tag (gtag.js) - Google Analytics