美文网首页程序员iOS Developer
Assets.xcassets中New Data Set使用说明

Assets.xcassets中New Data Set使用说明

作者: 蝴蝶之梦天使 | 来源:发表于2017-08-22 14:46 被阅读617次
    Assets.xcassets

    Data Set

    一直很推荐使用Assets.xcassets来管理图片,就一个字“方便”。用的很顺手啊。但是Gif的图片一直都是放在Resouces文件夹中的,今天突然想着为何不把Gif的图片也放入Asset.xcassets中进行管理。可怎么使用呢。

    New Data Set

    列表中唯一看到能使用的,应该只有New Data Set了。但是这个Data Set Type怎么使用呢。查找了官方文档和网络上的文章,都没有一个具体的说明。

    添加Gif

    右键选择New Data Set后,出现一个Universal的图片框,将Gif文件拖入。

    Gif

    Gif的图片就放入到了Assets.xcassets中。Contents.json显示为:

    {
      "info" : {
        "version" : 1,
        "author" : "xcode"
      },
      "data" : [
        {
          "idiom" : "universal",
          "filename" : "timg.gif",
          "universal-type-identifier" : "com.compuserve.gif"
        }
      ]
    }
    

    加载Gif

    因为不是png图片,所以不能使用[UIImage imageNamed:@"bear"];来获取,执行这个返回nil。而需要通过根据路径来加载Assets.xcassets中图片。

    NSString *gifPath = [[NSBundle mainBundle] pathForResource:@"bear" ofType:@"gif"];
        NSData *gif = [NSData dataWithContentsOfFile:gifPath];
    
        FLAnimatedImage *image = [FLAnimatedImage animatedImageWithGIFData:gif];
    
        [self.gifImageView setAnimatedImage:image];
    

    运行代码,执行成功。

    播放

    FLAnimatedImage

    FLAnimatedImage支持Gif的显示。如果直接使用UIImageView来显示的动画,也是可以的,不过需要加载很多图片。

    Gif拆解过多张图片
    使用UIImageView的@property (nullable, nonatomic, copy) NSArray<UIImage *> *animationImages;来实现动效。
    NSInteger pages = 45;
        NSMutableArray *imagesMArr = [[NSMutableArray alloc] initWithCapacity:5];
        for (int i = 1; i <= pages; i++ ) {
            NSString *imageName = [NSString stringWithFormat:@"loading_%d", i];
            UIImage *image = [UIImage imageNamed:imageName];
    
            [imagesMArr addObject:image];
        }
    
        [self.gifImageView setAnimationImages:imagesMArr];
    
        [self.gifImageView startAnimating];
    

    效果如下:

    AnimationImages的动效
    但是如你所见,为了实现这个效果,保存了整整45张图片。最后会导致APP的包变大,之后更换图片也比较麻烦。 还是果断使用FLAnimatedImage吧。虽然这个包已经很久没更新了。

    // END
    开发任务一直不需要用到新的技术,感觉用之前的经验就可以混日子了。!_!

    相关文章

      网友评论

        本文标题:Assets.xcassets中New Data Set使用说明

        本文链接:https://www.haomeiwen.com/subject/socldxtx.html