·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> iOS-利用UIImageView自己整了个不会说话的汤姆猫

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

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

 

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/
 本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。