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,这个函数的参数分别为设置长和宽为原来的多少倍,比如我们通过动画将控件放大到原来的两倍:










