iOS7 自定义动画跳转

简介

在iOS7系统中,如果你使用短信或者appStore苹果原生的工具的时候会发现这么一个细节。UINavigationViewController中界面的Push不再是像iOS6的旧界面左移,新的界面直接右侧滑入,而是新的视图是从右侧滑入并且盖在了之前视图控制器之上,还可以通过手势在界面左侧边界滑动来跳转到之前的界面。如图1.1,1.2。

图1.1                                          图1.2

不知道你是否已经看出两幅图之间的区别。有一个好的消息告诉大家,在iOS7中,所有和这样类似的功能都可以通过使用iOS7新的Apis来实现自定义的试图控制器的跳转。

一个自定义的跳转:

当你点击某一个app中的按钮的时候,某一个将要呈现的视图控制器会在当前视图的底部滑上来。这一次学习,我们将为需要呈现的视图实现一个自定义的变换。

在iOS中实现自定义跳转需要执行以下三个步骤:

1.创建一个动画控制器

第一步是创建一个实现了UIViewControllerAnimatedTransitioning协议的类。这个类中包含的代码是所要执行的动画,所以这个类被称为动画控制器。

2.在呈现一个新的视图控制器前,为它设置跳转的委托。

你需要为你将要呈现的视图控制器去设置一个它的动画跳转委托。通过这个委托回调来获取呈现新视图控制器时,自己将要执行的动画控制器。

3.在回调中返回动画控制器。

通过回调方法(2中)来返回你创建好的动画控制器的实例(1中)。

之后来实现所有步骤中的第一步:实现一个动画控制器。

创建一个动画控制器

新建一个继承自NSObject并遵循UIViewControllerAnimatedTransitioning

协议的类。UIViewControllerAnimatedTransitioning协议必须实现两个用来定义视图控制器之间自定义动画的方法。

@interface CustomPresentAnimationController :
NSObject <UIViewControllerAnimatedTransitioning>

@end

在.m文件中添加必须实现的两个方法:

1.控制整个跳转动画所需要执行的时间。例子代码中执行的时间设置为了两秒钟。

- (NSTimeInterval)transitionDuration:

(id <UIViewControllerContextTransitioning>)transitionContext {

return
2.0;

}

2.方法参数transitionContext可以帮助你成功的获取跳转前后的视图控制器、内容视图和少量的其他来龙去脉。你可以遍历这些属性,依赖于包含的视图控制器,使你的跳转动画变得与众不同。

- (void)animateTransition:

(id <UIViewControllerContextTransitioning>)transitionContext {

// 1. obtain state from the context

UIViewController
*toViewController = [transitionContext
viewControllerForKey:UITransitionContextToViewControllerKey];

CGRect
finalFrame = [transitionContext finalFrameForViewController:toViewController];

// 2. obtain the container view

UIView
*containerView = [transitionContext containerView];

// 3. set initial state

CGRect
screenBounds = [[UIScreen
mainScreen]
bounds]; toViewController.view.frame
=

CGRectOffset(finalFrame,
0, screenBounds.size.height);
// 4. add the view

[containerView
addSubview:toViewController.view];

// 5. animate

NSTimeInterval
duration =

[self transitionDuration:transitionContext];

[UIView
animateWithDuration:duration
animations:^{

toViewController.view.frame
= finalFrame; } completion:^(BOOL
finished) {

// 6. inform the context of completion

[transitionContext
completeTransition:YES];

}];

}

点击关注我,更多精彩内容!!!

群号:336146073


iOS7 自定义动画跳转

时间: 2024-08-28 17:33:01

iOS7 自定义动画跳转的相关文章

09.11 jquery04 效果 基本 滑动滑出 淡入淡出 自定义动画 动画操作 工具 浏览器 对象和属性操作核心

# 效果 ### 基本 (width/height/opacity) * show() * hide() * toggle() ### 滑动滑出 (height) * slideUp()       隐藏 * slideDown()  显示 * slideToggle() ### 淡入淡出 * fadeOut()    隐藏 * fadeIn()      显示 * fadeToggle() * fadeTo() 不占用位置 消失之后后面的自动向上移动 ### 自定义动画 * animate(p

CSS3 自定义动画(animation)

除了在之前的文章中介绍过的 CSS3 的变形 (transformation) 和转换 (transition) 外,CSS3 还有一种自由度更大的自定义动画,开发者甚至可以使用变形(transformation)和转换(transition)制作自定义动画,利用纯 CSS 制作出像 Flash 一样的效果.在实际使用中不难发现,变形和转换更适合做元素的交互,而自定义动画除了做交互外还能使到网页具有活力,有了自定义动画,利用 CSS 代替 Flash 才会更加现实. 首先看看 animation

jQuery中关于如何使用animate自定义动画

动画 animate() 01.animate()方法的简单使用 有些复杂的动画通过之前学到的几个动画函数是不能够实现,这时候就是强大的animate方法了. 操作一个元素执行3秒的淡入动画,对比下一下2组动画设置的区别. $(elem).fadeOut(3000) $(elem).animate({ opacity:0 },3000) 显而易见,animate方法更加灵活了,可以精确的控制样式属性从而执行动画. 语法: 1 .animate( properties [, duration ]

Animate自定义动画

在jQuery中出了基本的动画之外,还有用户 可以自定义的函数,Animate() 用于创建自定义动画的函数. apI上指出: 这个函数的关键在于指定动画形式及结果样式属性对象.这个对象中每个属性都表示一个可以变化的样式属性(如“height”.“top”或“opacity”).注意:所有指定的属性必须用骆驼形式,比如用marginLeft代替margin-left. 而每个属性的值表示这个样式属性到多少时动画结束.如果是一个数值,样式属性就会从当前的值渐变到指定的值.如果使用的是“hide”.

自定义动画css属性

自定义动画: 1.animation-name(自定义动画名称) 元素所应用的动画名称,必须与@keyframes使用,名称由@keyframes定义. keyframes(动画关键帧):以@keyframes开头,其中{}所写入的是不同时间段的样式规则. <style type="text/css"> .div { width: 100px; height: 100px; background: blue; animation-name: lefttoright; } @

创建Material Design风格的Android应用--使用自定义动画

动画在Material Design设计中给用户反馈放用户点击时,并且在程序用户界面中提供连贯的视觉.Material主题为按钮(Button)和activity的转换提供了一些默认的动画,在android5.0(api 21)和更高的版本,你可以自定义这些动画和创建一个新动画: Touch feedback(触摸反馈) Circular Reveal(循环揭露效果) Activity transitions(Activity转换效果) Curved motion(曲线运动) View stat

jQuery自定义动画

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>jQuery自定义动画</title> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script

CSS3初学篇章_6(自定义动画)

自定义动画 由于有一部分低版本的浏览器并不支持的问题,所以这个样式要多做兼容,各大浏览器兼容前缀如下: 前缀 浏览器  -webkit  chrome和safari  -moz  firefox  -ms  IE  -o  opera 1. animation-name(动画名称):语法:animation-name :none | <identifier> 说明:元素所应用的动画 名称,必须与规则@keyframes配合使用,因为动画名称由@keyframes定义 div{ animatio

Android Material Design-Defining Custom Animations(自定义动画)-(六)

用户跟你的app进行交互时,material design中的动画给予用户动作的反馈和提供视觉的一致性(感受).Material主题提供了一些默认的按钮和activity过渡的动画效果,而在 Android 5.0(API级别21)或以上的系统版本中你可以自定义这些动画,还可以创建新的动画: l  Touch feedback(触摸反馈) l  Circular Reveal(循环显示) l  Activity transitions(Activity过渡) l  Curved motion(曲