iOS_三种简单动画的实现

1:头尾式动画.

// beginAnimations 表示此后的代码要参与到动画中
[UIView beginAnimations:nil context:nil];
// 设置动画持续时间
[UIView setAnimationDuration:0.5];
        
self.testView.frame = CGRectMake(screenW, screenH, 100, 100);

// commitAnimations,将beginAnimation之后的所有动画提交并生成动画
[UIView commitAnimations];

说明:如果只是修改控件的属性,使用首尾式动画还是比较方便的,但是如果需要在动画完成后做后续处理,就不是那么方便了

2:block 动画


    CGFloat screenW = [UIScreen mainScreen].bounds.size.width - 120;
    CGFloat screenH = [UIScreen mainScreen].bounds.size.height - 120;

    [UIView animateWithDuration:0.7 animations:^{
        self.testView.frame = CGRectMake(screenW, screenH, 100, 100);
    } completion:^(BOOL finished) {
        self.testView.backgroundColor = [UIColor blueColor];
    }];

说明:
(1)在实际的开发中更常用的时block代码块来处理动画操作。
(2)块动画相对来说比较灵活,尤为重要的是能够将动画相关的代码编写在一起,便于代码的阅读和理解.

3:序列帧动画



    UIImageView *img = [[UIImageView alloc]init];
    
    //这里把要执行动画的图片存放到数组中即可 
    NSMutableArray *arrayM = [NSMutableArray array];
    
    // 给图片框设置图片数组
    [img setAnimationImages:arrayM];
    
    // 设置动画播放时间
    [img setAnimationDuration:arrayM.count * 0.075];
    
    // 设置重复次数(默认是0)
    [img setAnimationRepeatCount:1];
    
    // 开始动画
    [img startAnimating];
    
    // 停止动画
    [img stopAnimating];
    
    // 动画是否在执行
    BOOL isAnim = [img isAnimating];

说明:
项目中使用序列帧动画,要考虑程序性能,(内存暴涨)播放动画以后要清空图片数组.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,232评论 4 61
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,566评论 6 30
  • 窗外淅沥沥滴嗒嗒地 在着下雨 拉上窗帘 在光线昏暗的房间里 把头埋在软软的枕头里 听着格外有韵律的雨声入睡 会不会...
    二馨呀阅读 386评论 0 1
  • 风 吹不尽的满地惆怅 雨 打湿了一地残红 满怀痴心 呢喃季节思念 于是 羞红了 飘满一路 惊满情殇 欲捡起那片花瓣...
    入夏浅浅阅读 283评论 0 8
  • 由于苹果在2017实行全部请求必须https,公司的项目需要整改联网请求为https,现在把实现过程写出来。首先建...
    ranzx阅读 1,346评论 1 1