今天博主有一个隐式与显式动画的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.
iOS开发中的动画分为两种:一种为UIView动画,又称隐式动画,动画后frame的数值发生了变化.另一种是CALayer动画,又称显示动画,动画后模型层的数据不会发生变化,图形回到原来的位置.但是在实际开发中,因为UIView可以相应用户交互,所以UIView动画用的多.
一.UIview的动画
1.实现方式:动画块,block
begin
//设置动画效果 修改属性值,动画时长等等
conmmit
2.属性动画,过渡动画
①属性动画支持6种:transform 结构体 6个
②过渡动画:容器视图,两个子视图
二.CALayer动画 == 核心动画 == CAAnimation动画
CAAnimation 抽象类
animation
①.CAAnimationGroup 组合动画
②.CATransition 过渡动画
③.CAPropertyAnimation 属性动画(layer的属性)
animationWithKeyPath
CABasicAnimation 基本动画
fromValue toValue
CAKeyFrameAnimation 关键帧动画
values
下面贴出UIView动画的代码,与大家分享,CALayer动画,也就是Core Animation各位看官可以自行百度.
1.
//使用动画块设置动画
//开始设置动画 第一个参数:动画的名字 第二个参数:可以用来传值
[UIView beginAnimations:@"哈哈" context:nil];
//设置动画的时长
[UIView setAnimationDuration:1.5];
[UIView setAnimationRepeatAutoreverses:YES];
//根据需求设置视图的属性变化
_showView.backgroundColor=[UIColor grayColor];
_showView.center=CGPointMake(200, 200);
//提交动画设置,开始执行动画
[UIView commitAnimations];
2.
//使用Block设置动画
[UIView animateWithDuration:1.5 animations:^{
//动画效果设置
_showView.backgroundColor=[UIColor yellowColor];
//延时
[UIView setAnimationDelay:1.0];
//可以通过设置transform实现视图移动
} completion:^(BOOL finished) {
//动画完成后的设置
NSLog(@"动画完成");
}];
http://www.cocoachina.com/cms/wap.php?plg_nld=1&action=article&id=7597&plg_auth=1&plg_uin=1&plg_dev=1&plg_nld=1&plg_usr=1&plg_vkey=1