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

视图切换的动画效果

    博客分类:
  • iOS
阅读更多

为了避免视图之间切换的呆板问题,在IPHONE中引入了转换动画效果,分别在UIKit.framework和QuartzCore.framework中,后者的动画类型要比前者丰富一些。

 

- (IBAction)switchViews:(id)sender{
    //准备动画
	[UIView beginAnimations:@"animationID" context:nil];
    //动画播放持续时间
	[UIView setAnimationDuration:0.5f];
	//动画速度
	[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
	[UIView setAnimationRepeatAutoreverses:NO];
	
	UIButton *theButton = (UIButton *)sender;
	
	//动画方向
	switch (theButton.tag) {
		case 0:
			[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
			break;
		case 1:
			[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; 	 
			break;
		case 2:
			[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
			break;
		case 3:
			[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
			break;
		default:
			break;
	}
	
	[self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:0];
	[UIView commitAnimations];
}

 

下面的动画需要导入QuartzCore.framework库,并在实现文件中导入。

 

#import <QuartzCore/QuartzCore.h>

- (IBAction)switchViews:(id)sender{
    //准备动画
	CATransition *animation = [CATransition animation];
    animation.delegate = self;
	//动画播放持续时间
    animation.duration = 0.5f;
	//动画速度
    animation.timingFunction = UIViewAnimationCurveEaseInOut;
	animation.fillMode = kCAFillModeForwards;
	animation.removedOnCompletion = NO;
	
	UIButton *theButton = (UIButton *)sender;
	
	//动画效果
	switch (theButton.tag) {
		case 0:
			animation.type = @"cube";
			break;
		case 1:
			animation.type = @"suckEffect";
			break;
		case 2:
			animation.type = @"oglFlip";
			break;
		case 3:
			animation.type = @"rippleEffect";
			break;
		case 4:
			animation.type = @"pageCurl";
			break;
		case 5:
			animation.type = @"pageUnCurl";
			break;
		case 6:
			animation.type = @"cameraIrisHollowOpen ";
			break;
		case 7:
			animation.type = @"cameraIrisHollowClose ";
			break;
		default:
			break;
	}
	
	[self.view.layer addAnimation:animation forKey:@"animation"];
    [self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:0];
}

 

下面的动画同样需要导入QuartzCore.framework库,并在实现文件中导入。

 

#import <QuartzCore/QuartzCore.h>
- (IBAction)switchViews:(id)sender{
	CATransition *animation = [CATransition animation];
    animation.duration = 0.5f;
    animation.timingFunction = UIViewAnimationCurveEaseInOut;
	animation.fillMode = kCAFillModeForwards;
	
	UIButton *theButton = (UIButton *)sender;
	
	switch (theButton.tag) {
		case 0:
		    /*动画效果

			       kCATransitionFade

			       kCATransitionMoveIn

			       kCATransitionPush

			       kCATransitionReveal

			*/
			animation.type = kCATransitionPush;
			/*动画方向

			       kCATransitionFromRight

			       kCATransitionFromLeft

			       kCATransitionFromTop

			       kCATransitionFromBottom

		    */
			animation.subtype = kCATransitionFromTop;
			break;
		case 1:
			animation.type = kCATransitionMoveIn;
			animation.subtype = kCATransitionFromTop;
			break;
		case 2:
			animation.type = kCATransitionReveal;
			animation.subtype = kCATransitionFromTop;
			break;
		case 3:
			animation.type = kCATransitionFade;
			animation.subtype = kCATransitionFromTop;
			break;
		default:
			break;
	}
	
	[self.view.layer addAnimation:animation forKey:@"animation"];
}

 

UIKit.framework中的动画是对UIView的,而QuartzCore.framework是针对视图的属性layer来实现的,后者与视图动画比起来,具备更大的优势,更容易进行转换,倾斜,放大,缩小等等。

分享到:
评论

相关推荐

    iOS常用视图切换动画

    在iOS开发中,视图切换动画是提升用户体验的关键元素,它们可以使用户界面更加生动和吸引人。本篇文章将深入探讨iOS中常见的视图切换动画及其实现方式,主要针对Objective-C和Swift开发者。 首先,我们来看一种基本...

    各种视图切换动画

    在iOS开发中,视图切换动画是提升用户体验的重要一环,它们使得应用的交互更加生动有趣,也能够帮助用户更好地理解和导航应用的结构。本文将深入探讨“各种视图切换动画”的实现方法、技巧和最佳实践,以满足iOS...

    IOS7视图切换动画效果

    IOS7视图切换动画效果源码,该效果主要是采用了最新的iOS 7 特性来实现一系列效果很棒的视图切换动画。包括折叠切换、爆炸切换、卡片式切换等等,同时也可以在Navigation Controller或者TabBar Controller中实现视图...

    IOS 多视图切换加动画

    本文将深入探讨如何实现iOS中的多视图切换,并加入动画效果,以提供更加流畅、直观的用户体验。 首先,理解多视图的概念。在iOS应用中,视图(View)是屏幕上的一个可视元素,而视图控制器(UIViewController)是...

    IOS切换视图动画

    本文将深入探讨如何实现iOS中的视图切换动画,以及使用源码和工具来优化这一过程。 首先,我们要理解iOS中的视图控制器(UIViewController)是管理单个屏幕内容的核心组件。在视图控制器之间进行切换时,通常会涉及...

    IOS 视图切换动画

    在iOS开发中,视图切换动画是提升用户体验的重要一环,它可以使得应用的交互更加生动有趣,增强用户的沉浸感。本篇文章将深入探讨如何在iOS中实现炫酷的视图切换效果,以及这些效果如何应用于页面和控件的切换。 ...

    iOS 自定义视图切换动画

    实现可以自定义的视图切换动画能够达到很炫的效果

    各种视图切换动画效果(iPhone源代码)

    来源:Licence:Apache... 实现各种视图切换的过渡动画效果,包括吸收(效果图1),翻页((效果图2),波纹((效果图3),3D立方体翻转(效果图3),推挤,淡入,淡出等等。 小编注:感谢开发者@kongyu2013_22599 。

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

    通过巧妙地利用其提供的各种动画效果和自定义选项,开发者可以打造出与iOS相媲美的视图切换体验,使应用在竞争激烈的市场中脱颖而出。在实际开发中,结合设计原则和用户需求,恰当地运用`SwitchLayout`,无疑能够...

    android下实现视图切换

    6. **动画效果**:为了提高用户体验,视图切换通常会伴随着动画效果。Android提供了多种内置动画API,如ObjectAnimator、ValueAnimator和Transition API,可以用来实现平滑的视图过渡。在WorkSpaceDemo中,可能就...

    winform选项卡控件 切换动画效果 项目源码 含demo

    本项目源码着重于为WinForm的选项卡控件添加切换动画效果,使用户界面更加生动、交互性更强。以下是关于这个项目的一些关键知识点和实现细节: 1. **选项卡动画效果**:传统的WinForm选项卡控件在切换时通常没有...

    WPF 切换图片动画效果Demo

    这些效果可以应用于Image控件,实现更为丰富的图片切换动画。 8. **代码示例**: ```xml &lt;!-- DoubleAnimation for fade-in/out --&gt; ``` 在C#后台代码中,你可以设置Image的Source属性并...

    ios 视图切换翻页效果

    在iOS开发中,实现视图切换的翻页效果是一种常见的用户界面交互,它可以带给用户更加流畅和自然的体验。这种效果通常应用于展示多个内容页面,比如电子书阅读、相册浏览或者产品展示等场景。本篇文章将深入探讨如何...

    iphone 各种视图切换效果

    CAAnimation则可用于单独视图的动画效果,如放大缩小、旋转等。 5. **UIViewControllerAnimatedTransitioning** 如果需要更高级的自定义转场动画,可以实现UIViewControllerAnimatedTransitioning协议。这个协议...

    3D切换动画效果

    在Android平台上实现3D切换动画效果,是一种提升用户体验和视觉吸引力的重要手段。这种技术主要涉及到Android的动画系统,包括视图动画(View Animation)和属性动画(Property Animation)。以下是关于这个主题的...

    点击切换视图滑动切换视图

    5. **自定义过渡动画**: iOS提供了Core Animation框架,允许开发者创建自定义的视图切换动画。这不仅可以实现点击或滑动切换,还可以添加独特的视觉效果,提升用户体验。 6. **响应式布局(Auto Layout)和Size ...

    带有下划线和动画效果的视图切换(addChildViewController)

    本文将深入探讨`addChildViewController`的使用方法,并结合带有下划线和动画效果的视图切换示例`demxc9po`进行讲解。 首先,我们来看`addChildViewController`的基本用法。当一个UIViewController希望包含另一个...

    Fragment视图切换动画效果的库

    源码FragmentTransactionExtended,一个扩展了Fragment动画效果的库,FragmentTransactionExtended是 FragmentTransaction 的扩展, FragmentTransaction 只支持少数的动画效果(TRANSIT_FRAGMENT_CLOSE, TRANSIT_...

    小程序源码 viewflow视图切换效果.rar

    1. **视图切换动画**:viewflow库包含多种预设的视图切换动画,如淡入淡出、滑动切换等。这些动画可以增强用户在使用小程序时的视觉体验,使得页面间的切换更为自然流畅。开发者可以根据自己的需求选择合适的动画...

Global site tag (gtag.js) - Google Analytics