美文网首页
图片在项目中的存在方式

图片在项目中的存在方式

作者: 遇见就不在 | 来源:发表于2017-02-25 15:34 被阅读26次

    一、图片拖入项目中的方式

    1、直接拖入项目

    2、放在Assets.xcassets中

    二、图片加载的两种方式

    1、加载类型
    1. 直接拖入项目
    • 方式一:imageWithContentsOfFile
    • 方式二:imageNamed
    //通过路径寻找
    NSString *path = [[NSBundle mainBundle] pathForResource:@"XX.jpg" ofType:nil];
    _imageView.image = [UIImage imageWithContentsOfFile:path];
    
    //通过名字寻找
    _imageView.image = [UIImage imageNamed:@"图片.jpg"];
    
    1. Assets.xcassets
    • 方式一:imageNamed(唯一)
    //通过路径无法找到
    NSString *path1 = [[NSBundle mainBundle] pathForResource:@"2.jpg" ofType:nil];
    _thridImageView.image = [UIImage imageWithContentsOfFile:path1];
    
    _fourthImageView.image = [UIImage imageNamed:@"2"];
    
    2、打包方式上的不同

    项目完成以后,所有的图片资源会被一起打包成ipa文件发布到AppStore,拖入Assets.xcassets文件夹中的图片最后会被打包成一个Assets.car文件,我们不能根据路径读取图片。而拖入Supporting Files文件夹中的图片可以根据路径读取。另外,从某种程度上讲,拖入Assets.xcassets文件夹中的图片因为被打包成了Assets.car文件,可以得到一定程度上的保护,以防止盗图(之所以说是一定程度,是因为我们依然可以通过其他手段解压相关图片)。而拖入Supporting Files文件夹中的图片则直接暴露在外面。

    3、占用内存和性能优化
    1、通过imageNamed:方法加载的图片,其图片在使用完成后,并不会立即被释放掉,具体释放时间由系统决定。因此,这种加载方法,适用于图片小、数量少,且经常使用的图片处理场合。
    

    2、通过imageWithContentsOfFile:可以快速的手动释放。
    
    4、适用场合

    1、imageNamed:方法适用于经常使用,并且图片小、数量少的场合,方便快速加载;

    2、imageWithContentsOfFile:方法适用于图片比较大,并且图片数量非常多的场合,此时需要考虑程序的性能。

    相关文章

      网友评论

          本文标题:图片在项目中的存在方式

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