我的iOS学习之路(四):动画设置

  在ios的开发过程中,经常需要对视图控件进行变化,如大小,颜色,旋转等,这是如果直接将变化结果呈现出来,就显得不够友好,所以我们通常会使用动画,让用户能够看到变化的过程。

  使用动画通常有两种方式,一种是在代码块之间进行,另外一种是使用block块。

  接下来先介绍使用代码块

 

1   //使用代码块只需要将要进行变化的控件,在变化时的操作放在代码块中
2           //动画头部
3          [UIView beginAnimations:Nil context:Nil];
4          //动画完成时间
5         [UIView setAnimationDuration:1];
6          //此处对label改变frame
7         UILabel *label.frame = CGRectMake(80, 480, 60, 30);
8           //动画尾部,提交、执行动画
9         [UIView commitAnimations];  

 

  在使用block来进行设置动画,有两种方法,第一种是通过调用[UIView animateWithDuration:NSTimeInterval animations:^(void)animations]方法

  

1 //将需要进行动画操作的代码放入到块当中
2 //其中第一个参数为动画时间
3 [UIView animateWithDuration:1 animations:^{
4 //            label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, width, HEIGHT);
5 //        }];

  第二种方法是调用

[UIView animateWithDuration:(NSTimeInterval) animations:^(void)animations completion:^(BOOL finished)completion]方法,此方法为上一个方法的加强版,在执行完动画操作后,会执行最后一个块

 1     UIView *view = [[UIView alloc] init];
 2     view.frame = CGRectMake(0, 0, 100, 100);
 3     view.backgroundColor = [UIColor greenColor];
 4     //使用block实现动画效果
 5 //    [UIView animateWithDuration:5 animations:^{
 6 //        view.frame = CGRectMake(220, 330, 40, 40);
 7 //        view.backgroundColor = [UIColor redColor];
 8 //    }];
 9     //一个动画块执行完后,继续执行最后一个块
10     [UIView animateWithDuration:5 animations:^{
11         view.frame = CGRectMake(220, 330, 40, 40);
12         view.backgroundColor = [UIColor redColor];
13     } completion:^(BOOL finished) {
14         [UIView animateWithDuration:5 animations:^{
15             view.frame = CGRectMake(0, 0, 100, 100);
16             view.backgroundColor = [UIColor yellowColor];
17             view.alpha = 0.1;
18         }];
19     }];

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。