Assets.xcassets中New Data Set使用说明

Assets.xcassets中New Data Set使用说明

Assets.xcassets

Data Set

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

Assets.xcassets中New Data Set使用说明

New Data Set

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

添加Gif

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

Assets.xcassets中New Data Set使用说明

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];

运行代码,执行成功。

Assets.xcassets中New Data Set使用说明

播放

FLAnimatedImage

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

Assets.xcassets中New Data Set使用说明

Gif拆解过多张图片

使用UIImageView的@property (nullable, nonatomic, copy) NSArray*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];

效果如下:

Assets.xcassets中New Data Set使用说明

AnimationImages的动效

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

// END

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

  • 作者:蝴蝶之梦天使

  • 链接:http://www.jianshu.com/p/aea75d45d7a6

  • 來源:简书

  • 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Assets.xcassets中New Data Set使用说明

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址