您的位置:首页 > 移动开发 > IOS开发

IOS视图切换实现简单动画

2013-12-05 21:23 465 查看
1.两个简单视图间的切换算法。
if (self.pRedViewController.view.superview == nil)
{
if (self.pRedViewController.view == nil)
{
LinRedViewController * red = [[LinRedViewController alloc]initWithNibName:nil bundle:nil];
self.pRedViewController = red;
[red release];
}
[self.pYellowViewController.view removeFromSuperview];
[self.view insertSubview:self.pRedViewController.view atIndex:0];
}
else
{
if (self.pYellowViewController.view.superview == nil)
{
if (self.pYellowViewController.view == nil)
{
LinYellowViewController * yellow = [[LinYellowViewController alloc]initWithNibName:nil bundle:nil];
self.pYellowViewController =yellow;
[yellow release];
}
[self.pRedViewController.view removeFromSuperview];
[self.view insertSubview:self.pYellowViewController.view atIndex:0];
}
}
判断当前pRedViewController视图的超视图是否空,若为空则判断当前pRedViewController是否为空,若为空则设置临时变量red,再赋给pYellowViewController,释放临时变量,接着把当前的pRedViewController去除,加入pYellowViewController视图;反之则亦然。把此导人到下面两个方法中,即可实现简单动画。
2.在UIView类下,通过Animation框架实现动画效果。
//设置动画的名字
[UIView beginAnimations:@"Animation" context:nil];
//设置动画的间隔时间
[UIView setAnimationDuration:1.5];
//设置动画的速率
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
//设置动画的方式
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];

//UIView动画的结束方式
[UIView commitAnimations];
3.导入QuartzCore/QuartzCore.h框架,利用图层思想实现动画。
//导入QuartzCore/QuartzCore.h框架,实现动画
CATransition *transiton = [CATransition animation];
transiton.delegate = self;
transiton.duration = 1.25;
transiton.timingFunction = UIViewAnimationCurveEaseInOut;
transiton.subtype = kCATransitionFromRight;
transiton.type = @"pageUnCurl";
//(各种动画效果)@"cube"(方块式动画) @"moveIN(插入替换动画)" @"reveal"(幕帘式动画-推) @"fade"(default)(逐渐替换式,是系统默认的动画方式-当不写caswitch.type时,系统的动画方式就是fade) @"pagecurl"(类似逐渐替换动画) @"pageUnCurl"(不规则翻页式动画) @"suckEffect" @"rippleEffect" @"oglFlip"

//QuartzCore/QuartzCore.h框架时动画的结束,layer寻找图层
[self.view.layer addAnimation:transiton forKey:nil];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: