动画有两大要素,一是改变,可能是位置,也可能是形状;而是持续时间,这个时间长短必须是大于0的,可以是有限的时间,也可以是无限制的.在ios里面简单的动画无非无非是旋转,平移和缩放,分别对应不同的方法,下面我们分别介绍下:
准备工作,我们在页面上添加一个button和一个UIView,然后给给button添加一个点击事件,将添加的动画的属性以及UIView的变化方法都写到点击事件里面
一:平移
[UIView beginAnimations:@"属性动画" context:nil];
//设置动画的持续时间
[UIView setAnimationDuration:2];
//动画延迟时间
[UIView setAnimationDelay:1];
//设置重复次数
[UIView setAnimationRepeatCount:3];
//设置自动反转
[UIView setAnimationRepeatAutoreverses:YES];
动画属性还有很多 大家可以自己去尝试下
添加完这些属性后,我们就需要给设置myView的平移事件了
//第一种方法,这种方法以view的最初的原点为基准进行变换,一旦确
定了平移的几个参数后,变换的效果就唯一,只有第一次点击按钮才会有动画,以后再点击都不会再动了.
// self.myview.transform = CGAffineTransformMake(1, 0, 0,
1, 25, 50);
//第二种方法,这种方法没有变换都是以最新的位置的原点为坐标原点
进行变换,所以每一点击按钮都可以在新的位置的基础上触发新的动画.
self.myview.transform =
CGAffineTransformTranslate(self.myview.transform, 30, 30);
属性设置完毕后就可以开始动画了
[UIView commitAnimations];
其他的动画属性设置是相同的,只不过是view的变换方法有所改变而已
二:旋转
// self.myview.transform =
CGAffineTransformMakeRotation(M_PI/3);
或者
self.myview.transform =
CGAffineTransformRotate(self.myview.transform, M_PI/3);
三:缩放
self.myview.transform = CGAffineTransformMakeScale(2, 2);
或者
self.myview.transform =
CGAffineTransformScale(self.myview.transform, 1.5, 1.5);
当然动画并不是一定需要Animation这个属性才可以实现,还有其他方法,举个栗子,我们可以通过添加定时器,给UIView添加一个颤抖的效果
代码如下
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self
selector:@selector(rock:) userInfo:nil repeats:YES];
rock实现方法
-(void)rock:(NSTimer *)sender{
self.myview.transform = CGAffineTransformMakeRotation(M_PI/18*_i);
_i*= -1;
}```