IOS开发系列 |
您所在的位置:网站首页 › ios动画开发 › IOS开发系列 |
2UIView动画 2.1概述 UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。UIView可以产生动画效果的变化包括: •位置变化:在屏幕上移动视图。 •大小变化:改变视图框架(frame)和边界。 •拉伸变化:改变视图内容的延展区域。 •改变透明度:改变视图的alpha值。 •改变状态:隐藏或显示状态。 •改变视图层次顺序:视图哪个前哪个后。 •旋转:即任何应用到视图上的仿射变换(transform)。 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码包装到一个代码块中。 2.2UIView动画简单创建方法- (void)buttonPressed { //交换本视图控制器中2个view位置 [self.viewexchangeSubviewAtIndex:0 withSubviewAtIndex:1]; //UIView开始动画,第一个参数是动画的标识,第二个参数附加的应用程序信息用来传递给动画代理消息 [UIViewbeginAnimations:@"View Flip" context:nil]; //动画持续时间 [UIViewsetAnimationDuration:1.25]; //设置动画的回调函数,设置后可以使用回调方法 [UIViewsetAnimationDelegate:self]; //设置动画曲线,控制动画速度 [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; //设置动画方式,并指出动画发生的位置 [UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES]; //提交UIView动画 [UIViewcommitAnimations]; } - (void)viewDidLoad { [super viewDidLoad]; //主要功能通过UIView动画完成2个试图控制器的切换 self.blueController =[[BlueViewController alloc] initWithNibName:nil bundle:nil]; //设置导航控制器view的大小占整个屏幕 [self.blueController.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; self.yellowController =[[YellowController alloc]initWithNibName:nil bundle:nil ]; [self.yellowController.view setFrame:CGRectMake(0, 0,self.view.frame.size.width , self.view.frame.size.height)]; //将2个控制器view插入到目前导航控制器视图上,yellowController后插入,显示在最前面 [self.viewinsertSubview:self.blueController.view atIndex:0]; [self.viewinsertSubview:self.yellowController.view atIndex:1]; //创建导航控制器右按钮,按钮名字叫next //添加buttonPressed事件 self.rightBarItem =[[UIBarButtonItem alloc] initWithTitle:@"next" style:UIBarButtonItemStylePlaintarget:self action:@selector(buttonPressed)]; //将按钮添加到导航控制器默认右按钮上 self.navigationItem.rightBarButtonItem = self.rightBarItem; } 有个问题:如果动画不放在按钮事件中,直接放到viewDidLoad里,程序首先执行这个controller,这时动画是不会显示的。 原因:出现这个问题是因为开机时候系统有个动画,系统动画和这个动画重复了。 解决方案: 1、将动画写在按钮事件中 2、利用定时器。 转:UIView动画更具体讲解;http://wsqwsq000.iteye.com/blog/1189183 2.3创建UIView动画(块)——(指过渡效果的动画) 2.3.1一.基本方式:使用UIView类的UIViewAnimation扩展UIView动画是成块运行的。发出beginAnimations:context:请求标志着动画块的开始;commitAnimations标志着动画块的结束。把这两个类方法发送给UIView而不是发送给单独的视图。在这两个调用之间的可定义动画的展现方式并更新视图。函数说明: //开始准备动画 + (void)beginAnimations:(NSString *)animationID context:(void*)context; //运行动画 + (void)commitAnimations; 具体二段动画代码: [UIView beginAnimations:nil context:nil]; //setAnimationCurve来定义动画加速或减速方式 [UIView setAnimaitonCurve:UIViewAnimationCurveLinear]; [UIView setAnimationDuration:2.7];//动画时长 [UIView setAnimationTransition:transitionforView:self.view cache:YES]; // operation>>> [self.view exchangeSubviewAtIndex:0withSubviewAtIndex:1]; // end |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |