IOS 视图切换动画
我在网上找到的这个小方法,被我举一反三使用的屡试不爽。
比如用在,当视图需要执行某一方法跳转到新的一个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 视图切换动画的更多相关文章
- iOS页面切换动画实现方式。
iOS页面切换动画实现方式. 1.使用UIView animateWithDuration:animations:completion方法 Java代码 [UIView animateWithDura ...
- iOS 视图,动画渲染机制探究
腾讯Bugly特约作者:陈向文 终端的开发,首当其冲的就是视图.动画的渲染,切换等等.用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅.UI就是 App 的门面,它的体验 ...
- iOS:视图切换的第一种方式:模态窗口
一.UIModalController:模态窗口(一个控制器模态出另一个控制器的模态窗口) 当我们在view controller A中模态显示view controller B的时候,A就充当pre ...
- ios 视图切换翻页效果
本文写的是视图切换,涉及到的内容有 1.实现代码添加Navigation Bar Toolbal: 2.实现在Navigation Bar和Toolbar上用代码添加Bar Button Item: ...
- ios视图切换之push与present混用
在变成过程中,经常遇到两个视图控制器之间的切换,导航控制器即UINaVigation是最常用的一种,有时为了某些效果又需要进行模态切换,即present. 我们的布局经常是在window上加一个nav ...
- iOS:视图切换的第二种方式:UINavigationController导航栏控制器
UINavigationController:一个以栈的形式管理多视图的容器,负责子控制器之间的跳转.由于以栈的方式管理视图,各个视图的切换就是压栈和出栈操作,所以出栈后的视图会立即销毁. 介绍: & ...
- sencha touch 监听视图切换动画(animation)
var animation = this.getLayout().getAnimation(); //添加监听 animation.on({ scope: this, animationend: 'o ...
- android视图切换动画:ViewAnimator类及其子类
类图:
- Android的Activity切换动画特效库SwitchLayout,视图切换动画库,媲美IOS
由于看了IOS上面很多开发者开发的APP的视图界面切换动画体验非常好,这些都是IOS自带的,但是Android的Activity等视图切换动画并没有提供原生的,所以特此写了一个可以媲美IOS视图切换动 ...
随机推荐
- RAID对硬盘的要求及其相关
Raid 0:至少需要两块硬盘,磁盘越多,读写速度越快,没有冗余. Raid 1:只能用两块硬盘,两块硬盘的数据互为镜像(写慢,读快),一块磁盘冗余. Raid 5:至少需要3块硬盘,一块磁盘冗余. ...
- [iOS微博项目 - 2.6] - 获取微博数据
github: https://github.com/hellovoidworld/HVWWeibo A.新浪获取微博API 1.读取微博API 2.“statuses/home_time ...
- Codeforces 712 D. Memory and Scores (DP+滚动数组+前缀和优化)
题目链接:http://codeforces.com/contest/712/problem/D A初始有一个分数a,B初始有一个分数b,有t轮比赛,每次比赛都可以取[-k, k]之间的数,问你最后A ...
- HDU1151Air Raid(二分图的最大匹配)
题目大意: 有一个城镇,它的所有街道都是单行的,并且每条街道都是和两个路口相连.同时已知街道不会形成回路. 你的任务是编写程序求最小数量的伞兵,这些伞兵可以访问(visit)所有的路口.
- hdoj 5344 MZL's xor
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5344 #include<stdio.h> #include<cstring> ...
- js ajax post提交 ie和火狐、谷歌提交的编码不一致,导致中文乱码
今天遇到一个问题找了很久发现: 使用js ajax post提交 ie和火狐.谷歌提交的编码不一致,导致中文乱码 //http://www.cnblogs.com/QGC88 $.ajax({ url ...
- Spring REST实践之安全
Securing REST Services 一般有六种方式实现的REST服务的安全: Session-based security HTTP Basic Authentication Digest ...
- 一个人写的操作系统 - Sparrow OS
一个人写的操作系统 - Sparrow OS 自己写一个操作系统,这是在过去的几年里我一直为之努力的目标,现在终于完成了. 缘起 自己动手写操作系统的动机最初来自于学习Linux遇到的困难. 我是一个 ...
- Oracle Job相关
Oracle JOB的建立,定时执行任务 begin sys.dbms_job.submit(job => :job, ...
- xshell 远程连接Linux
Linux系统(Ubuntu 16.04) Window系统(win10) 工具:xshell Linux下, sudo apt-get update sudo apt-get install ope ...