基础动画
基础动画是iOS的UI设计中最基础的动画,实现代码很简单,但是在实际开发中很少用,一般开发者实现动画使用核心动画编程。那为什么还要学基础动画编程呢?因为核心动画编程是基于基础动画编程的。所以当基础动画掌握了,那核心动画也就不会那么难了。
首先我们先说一下传统的基础动画编程模式——首尾式
//执行动画,这里为首尾式的首
[UIView beginAnimations:@"AniName" context:nil];
//添加动画效果
//设置执行时间
[UIView setAnimationDuration:1.0];
//设置重复次数
[UIViewsetAnimationRepeatCount:1];
//设置是否逆序返回动画效果
[UIViewsetAnimationRepeatAutoreverses:NO];
//设置位移和尺寸
// aniView.frame =CGRectMake(100, 100, 160, 160);
aniView.center = self.view.center;
//设置移动位置
aniView.transform = CGAffineTransformMakeTranslation(100, 100);
//设置缩放比例
aniView.transform = CGAffineTransformMakeScale(5.0, 0.1);
//设置旋转角度
aniView.transform = CGAffineTransformMakeRotation(M_PI/2);
CGAffineTransformIsIdentity(aniView.transform);
//翻页效果
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
//以某个view为参照物,旋转多少度
aniView.transform = CGAffineTransformRotate(aniView.transform,M_PI/2);
//提交动画,这里为首尾式的尾
[UIViewcommitAnimations];
当我们写完之后会发现代码量很多,这时候就有了另外一种方式————用block语法写动画效果,一般实现基础动画的编程方式都选择这种,因为用block方式编写的代码简洁明了,实际代码如下:
//设置动画执行时间
[UIView animateWithDuration:2.0 animations:^{
//设置动画的效果,这里是旋转
aniView.transform = CGAffineTransformRotate(aniView.transform, M_PI/4);
}
//这里是当动画执行完之后的所需要执行的代码块
completion:^(BOOL finished){
if (finished) {
NSLog(@"动画完成");
}
}];