IOS视图切换实现简单动画

来源:互联网 发布:breed mac修改 编辑:程序博客网 时间:2024/06/05 18:20
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];