美文网首页
ios--项目优化(内置图片)

ios--项目优化(内置图片)

作者: Harry__Li | 来源:发表于2020-11-30 15:16 被阅读0次
  1. app图片的存放方式
    1.1buddle存放
    我们在各种sdk中都可以看到,既整洁又可以达到资源隔离的效果。
    采用 bundle 的加载方式为 [UIImage imageNamed:"xx.bundle/xx.png"]。
    这种方式也存在着明显的缺点:
    1.ios系统不会对其进行打包压缩,造成了app包体积的增大
    2.使用 bundle 存储图片放弃了 APP thinning。明显的表现是 2 倍屏手机和 3 倍屏手机下载的应用包大小一样。如果能够实现 APP thinning,那么往往 2 倍屏幕的手机包大小会小于 3 倍屏手机的,起到差异性优化的目的。
    1.2使用 .ttf 字体文件替代图标
    使用字体文件代替图片资源。这也是一种比较常见的资源内置方式。
    优点:
    1. 显而易见的,为了保证图片的清晰度,UI会提供比较大的图标。使用了字体文件就不必导入@2x和@3x的图片,一套字体文件就能保证ui的清晰度。可以降低应用图片内置资源的体积。
      可以随意缩放和修改颜色。
      2.字体文件使用起来也不难,从https://www.iconfont.cn/下载代码,把ttf文件导入到项目中,借助淘点点科技写的一个关于iconfont封装 TBCityIconFont。
 UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 50, 30, 30)];
    [self.view addSubview:imageView];
    imageView.image = [UIImage iconWithInfo:TBCityIconInfoMake(@"\U0000e603", 30, [UIColor redColor])];
//    button
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(100, 100, 40, 40);
    [self.view addSubview:button];
    [button setImage:[UIImage iconWithInfo:TBCityIconInfoMake(@"\U0000e60c", 40, [UIColor redColor])] forState:UIControlStateNormal];
    [button setTintColor:[UIColor greenColor]];
//    label,label可以将文字与图标结合一起,直接用label的text属性将图标显示出来
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 160, 280, 40)];
    [self.view addSubview:label];
    label.font = [UIFont fontWithName:@"lhr_iconfont" size:15];//设置label的字体
    label.text = @"这是用label显示的iconfont  \U0000ef48";

缺点:
1.图片的查找和替换比较麻烦。单色修改颜色是可以成功,但是多色彩的时候就无法达到理想效果。
2.有些情况无法替换之前存在的图片,只能起到缩小增量的目的,无法减小全量。
可以把项目中的一些基础的公共功能图片设置成iconfont显示。

1.3图片存在 Assets.xcassets

使用 Assets.xcassets 是苹果推荐的一种方式。Assets.xcassets 是 iOS7 推出的一种图片资源管理工具,将图片内置到Assets.xcassets 下系统会对图片资源进行压缩,并且支持 APP thinning。

相关文章

网友评论

      本文标题:ios--项目优化(内置图片)

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