动画

动画有两大要素,一是改变,可能是位置,也可能是形状;而是持续时间,这个时间长短必须是大于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;

}```







最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容