zoukankan      html  css  js  c++  java
  • ios-序列帧动画核心代码简单介绍以及封装

    • imageView的属性,isAnimating在这里用来当正执行;一个动画的时候,禁止开启其他动画.
    • UIImage imageNamed这个方法加载的图片是有缓存的,它是把所有的图片先加载到内存中,再执行动画
      • 优点是: 执行动画效率高,启动时间短.
      • 缺点: 内存可能占用过大,造成程序闪退
    • UIImage imageWithContentsOfFile 这种方式是通过加载图片的路径的方式加载图片.添加到可变数组的是图片的路径.在执行动画的时候是根据图片的路径来加载图片到内存中的.
    - (void)beginAnimationWithImageCount:(int)count imageName:(NSString *)imageName {
        
        // 如果当前的图片框正在执行一个动画, 那么不开启一个新的动画
        if (self.imgView1.isAnimating) return;
        
        // 1. 把要执行动画的图片设置UIImageView(图片框)
        NSMutableArray *arrayM = [NSMutableArray array];
        for (int i = 0; i < count; i++) {
            NSString *imgName = [NSString stringWithFormat:@"%@%03d", imageName, i + 1];
            
            // 通过+ imageNamed:这个方法加载的图片, 是有缓存的
            // UIImage *img = [UIImage imageNamed:imgName];
            
            // 没有缓存的加载图片的方式:
            // 1》 确定图片的完整路径
            NSString *img_path = [[NSBundle mainBundle] pathForResource:imgName ofType:@"png"];
            // 2》通过调用imageWithContentsOfFile:方法来加载图片
            UIImage *img = [UIImage imageWithContentsOfFile:img_path];
            
            
            // 把图片对象添加到数组中
            [arrayM addObject:img];
        }
        // 把要执行动画的图片设置给图片框
        self.imgView1.animationImages = arrayM;
        
        
        // 2. 设置动画的持续时间
        self.imgView1.animationDuration = 0.1 * self.imgView1.animationImages.count;
        
        
        // 3. 设置动画的重复次数
        self.imgView1.animationRepeatCount = 1;
        
        
        // 4. 启动动画
        [self.imgView1 startAnimating];
        
        
        // 清除图片内存
        // self.imgView1.animationImages = nil;
        // [self.imgView1 setAnimationImages:nil];
        
        // 等待动画执行完毕后, 再清除内存
        [self.imgView1 performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.imgView1.animationDuration];
    
    }
    
    
    
  • 相关阅读:
    输入属性,输出属性
    angular响应式表单
    angular 响应式表单指令
    c++ Primer
    CString 操作函数
    字符串分割strtok_s
    LPSTR LPTSTR
    CString分割切分
    CStringArray
    十进制
  • 原文地址:https://www.cnblogs.com/adampei-bobo/p/5313845.html
Copyright © 2011-2022 走看看