• iOS- 利用UIImageView自己整了个不会说话的汤姆猫


    1.实现思路             

    先说说我实现它的主要思路,很简单,主要利用UIImageView连续动画播放,和按钮的点击事件,就可以完成了这么一个简单的不会说话的汤姆猫。

    2.实现细节             

     

    2.1.加载本地字典里保存的本地图片名       

    @property (weak, nonatomic) IBOutletUIImageView *tom;

    NSDictionary *_dict; // 保存所有图片的个数

    1 // 1.获得tom.plist的全路径
    2     NSBundle *bundle = [NSBundle mainBundle];
    3     NSString *path = [bundle pathForResource:@"tom" ofType:@"plist"];
    4     
    5     // 2.根据文件路径加载字典
    6     _dict = [NSDictionary dictionaryWithContentsOfFile:path];

    2.2.抽取动画连续播放的方法出来         

    1.有缓存(无法释放,参数传的是文件名)
    [UIImage imageNamed:@""];

    2.无缓存(用完就会释放,参数传的是全路径)
     [[UIImage alloc] initWithContentsOfFile:];

        // 1.创建可变数组
        NSMutableArray *images = [NSMutableArray array];
        
        // 2.添加图片
        for (int i = 0; i<count; i++) {
            // 图片名
            NSString *name = [NSString stringWithFormat:@"%@_%02d.jpg", filename, i];
            // 全路径
            NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:nil];
            
            // 加载图片(缓存)
    //        UIImage *img = [UIImage imageNamed:name];
            // 没有缓存
            UIImage *img = [[UIImage alloc] initWithContentsOfFile:path];
            
            [images addObject:img];
        }
        
        // 3.设置动画图片(有顺序)
        _tom.animationImages = images;// 序列帧动画
        
        // 4.只播放一次
        _tom.animationRepeatCount = 1;
        
        // 5.设置动画的持续时间
        _tom.animationDuration = 0.1 * count;
        
        // 5.开始动画
        [_tom startAnimating];
        

    2.3.监听按钮的点击,实现图片的连续播放形成动画

     1 #pragma mark 监听所有的按钮点击
     2 - (IBAction)btnClick:(UIButton *)sender {
     3     // 1.如果tom正在播放动画,直接返回
     4     if (_tom.isAnimating) return;
     5     
     6     // 2.取出按钮文字
     7     NSString *title = [sender titleForState:UIControlStateNormal];
     8     
     9     // 3.获得图片数量
    10     int count = [_dict[title] intValue];
    11     
    12     // 4.播放动画
    13     [self playAnim:count filename:title];
    14 }

     作者: 清澈Saup
     出处: http://www.cnblogs.com/qingche/
     本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    Codeforces Round #124 (Div. 2)
    Codeforces Round #158 (Div. 2)
    Codeforces round FF
    缕缕,
    拉伸 原来 就这一句话,
    tableveiw上面 的手势,
    reloaddata 是没有对 tableview的 headerview进行 刷新的,
    y
    考虑欠缺 以及 设计 导致的 工作量,
    present出来的 controller上的 controller里面用 navigationcontrolle了,失效了,
  • 原文地址:https://www.cnblogs.com/qingche/p/3511313.html
Copyright © 2020-2023  润新知