iOS基础动画教程分享

2020-01-18 18:00:34丽君

iOS的动画多种多样,动画做的好的应用会更加吸引人,用起来也会更加炫目,本文介绍iOS几种基础动画,单个讲解便于理解,但真正使用时,结合起来用会看起来更加帅,这就看具体的应用场景和大家的想象力啦。

所有的基础动画都给予UIView一个基础的方法:animateWithDuration。这个方法可以包含一个代码块,里面设置要改变的东西,在执行的时候iOS会自动以动画的形式展现出来,代码如下:


[UIView animateWithDuration:1 animations:^{
    // 要执行的动作
}];

其中的参数“1”表示动画在一秒时间下完成。
现在分别讲解位置、透明度、大小、颜色、旋转的动画。

位置动画

我们在界面上放置一个方块,然后想要他通过动画移动到另一个位置,怎么做呢?很简单,在上面的代码块的位置改变方块的中心就好了,如下:


  [UIView animateWithDuration:1 animations:^{
    // 改变蓝色方块的位置
    CGPoint blueCenter = self.blueSquare.center;// 获取原来的方块中心位置
    blueCenter.x = self.view.bounds.size.width - self.blueSquare.center.x;// 改变中心位置的X坐标
    self.blueSquare.center = blueCenter;// 设置方块的中心位置到新的位置
  }];

这样运行就可以看到动画了,很简单吧。
此外,还可以延迟动画的执行时间,比如想延迟半秒后执行,那么还是同样的方法,但是参数要多一点:


  [UIView animateWithDuration:1 delay:0.5 options:nil animations:^{
    // 改变蓝色方块的位置
    CGPoint blueCenter = self.blueSquare.center;// 获取原来的方块中心位置
    blueCenter.x = self.view.bounds.size.width - self.blueSquare.center.x;// 改变中心位置的X坐标
    self.blueSquare.center = blueCenter;// 设置方块的中心位置到新的位置
  } completion:nil];

delay参数表示延迟0.5秒执行动画,options可以不填,completion是完成后的操作,也可以不填。这样就实现了。

透明度动画

假设我们想通过动画渐变一个控件的透明度,比如慢慢变成基本看不见,也很简单,还是那个方法:


  // 开始透明度动画(一秒完成)
  [UIView animateWithDuration:1 animations:^{
    // 透明度变为0.1
    self.blueSquare.alpha = 0.1;
  }];

方块原来就有透明度,当然默认为1,通过这个设置,就可以让它在一秒钟时间里慢慢将透明度变成0.1,是不是很简单!

大小动画

如果想改变一个控件的大小,需要在代码块里用到一个改变大小的函数:CGAffineTransformMakeScale,这个函数的参数分别为设置长和宽为原来的多少倍,比如我们通过动画将控件放大到原来的两倍: