举例:
ios6:test.png
ios7:ios7_test.png
在ios7Image.plist中添加 "test"

PS:如果要统一成ios7风格,可以看看UI7Kit youknowone/UI7Kit 路 GitHub

@implementation UIImage (HT)

static NSArray *ios7Images;

+ (void)load {

if (IOS7) {

static dispatch_once_t once;

dispatch_once( &once, ^{

ios7Images = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"iOS7Images" ofType:@"plist"]];

[NSObject swizzleClassMethod:self from:@selector(imageNamed:) to:@selector(custom_imageNamed:)];

});

}

}

+ (UIImage *)custom_imageNamed:(NSString *)imageName {

if ([ios7Images containsObject:imageName]) {

return [self custom_imageNamed:[NSString stringWithFormat:@"ios7_%@",imageName]];

}

return [self custom_imageNamed:imageName];

}

@end

OK,图片多的时候怎么办呢?设计师弄好全部以ios7_开头命名的图片,放到一个目录,然后代码

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentPath = [searchPaths objectAtIndex:0];

NSString *path = [documentPath stringByAppendingString:@"/images"];

NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];

NSMutableArray *array = [NSMutableArray array];

for (NSString *file in files) {

if ([file isEqualToString:@".DS_Store"]) {

continue;

}

NSString *temp = [file stringByReplacingOccurrencesOfString:@"ios7_" withString:@""];

temp = [temp stringByReplacingOccurrencesOfString:@"@2x" withString:@""];

temp = [temp stringByReplacingOccurrencesOfString:@".png" withString:@""];

if ([array containsObject:temp]) {

continue;

}

[array addObject:temp];

}

NSString *plistPath = [documentPath stringByAppendingString:@"/iOS7Images.plist"];

[array writeToFile:plistPath atomically:YES];

转载于:https://www.cnblogs.com/yingkong1987/p/3338389.html

维护一套同时兼容 iOS 6 和 iOS 7,并且能够自动适应两个系统的 UI 风格的代码...相关推荐

  1. android ios 实时视频播放,vue 移动端视频自动播放兼容ios,安卓

    安卓初始化自动播放 首先创建一个jsmpeg.js文件,代码源文件放在百度网盘了,请自行下载 百度网盘下载地址 链接: https://pan.baidu.com/s/1bDvyrEAulMy8aYe ...

  2. iOS开发系列--iOS应用架构谈

    转自:Casa Taloyum 目录 iOS应用架构谈 (一)开篇 iOS应用架构谈 (二)view层的组织和调用方案 iOS应用架构谈 (三)网络层设计方案 iOS应用架构谈 (四)动态部署方案 i ...

  3. iOS开发笔记--iOS应用架构谈 view层的组织和调用方案

    前言 <iOS应用架构谈 开篇>出来之后,很多人来催我赶紧出第二篇.这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分. 现在好啦,第二 ...

  4. html5开发之ios屏幕适配,iOS开发屏幕尺寸以及屏幕适配等问题(转载内容)

    原帖地址:http://blog.csdn.net/phunxm/article/details/42174937/ 仅供我个人收藏学习,原博主如不同意请联系qq651263878进行删除,在此表示感 ...

  5. iOS - 常用的iOS Mac框架和库以及常用的中文开发博客

    对于iOS以及Mac开发中常用到的一些框架,以及比较好的技术博客做了总结: 主要内容如下: UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关 隐藏与显示 HUD与Toast 对话框 ...

  6. iOS 5与iOS 6的 low-memory 处理(转自cocoaChina)

    //加入部分注释 移动设备终端的内存极为有限,应用程序必须做好low-memory处理工作,才能避免程序因内存使用过大而崩溃. low-memory 处理思路 通常一个应用程序会包含多个view co ...

  7. iOS 5与iOS 6的 low-memory 处理

    移动设备终端的内存极为有限,应用程序必须做好low-memory处理工作,才能避免程序因内存使用过大而崩溃. low-memory 处理思路 通常一个应用程序会包含多个view controllers ...

  8. iOS面试准备 - ios篇

    iOS面试准备 - ios篇 ios面试准备 - objective-c篇 ios面试准备 - 网络篇 IOS面试准备 - C++篇 iOS面试准备 - 其他篇 运行时 https://juejin. ...

  9. AnyTrans for iOS for mac(ios数据传输管理工具)

    AnyTrans 是一款专业的ios管理工具,以聪明的方式管理.传输.备份.导出.导入.删除.修改.上传.管理所有的iOS数据和文件,在一个便利的地方完全管理你的iPhone,iPad,iPod,甚至 ...

最新文章

  1. 公开平等的企业文化是OKR落地第一步
  2. 宝塔同时安装苹果cms海洋cms_★苹果cms常见问题有哪些?100个常见问题的解决方法...
  3. 5地图组件 uni_uni-app学习笔记(一)-- uni-app简介
  4. java 判断端口是否被占用_java检测端口是否被占用详解
  5. Android的图片缓存ImageCache(转)
  6. PHP替换回车换行的三种方法
  7. 炸裂!谷歌这波操作,预警了什么?
  8. gitlable iphone_iPhone 12首批用户成“小白鼠”,“信号故障”躺枪者无数
  9. ZYNQ PS端输出不准确时钟供PL使用
  10. 孩子上了高一突然学不懂了,该怎么办?
  11. Ubuntu18.04 安装 Mysql 5.7 问题
  12. CSS的BEM命名规范
  13. 红旗 Linux 5.0 正式版下载地址
  14. 企业微信裂变玩法有哪些?需要使用哪些工具?
  15. 【数据攻略】字节面试真题(含答案)+100道面试题库
  16. POJ3169 Layout , 最短路算法解差分约束问题
  17. 函数——求三个数的最大值
  18. 使用eclipse开发Java Web项目(最最最基础)
  19. 通用网络空间安全技术
  20. 格林纳达常驻WTO大使孙宇晨发布声明祝贺北京冬奥会顺利召开

热门文章

  1. 径向基函数(RBF)神经网络
  2. c++ 实例精通(1)
  3. java dto是什么_java项目中VO和DTO以及Entity,各自是在什么情况下应用的
  4. 【Kaggle-MNIST之路】CNN+改进过的损失函数(三)
  5. 【MPI编程】任意数节点的树形求和(高性能计算)
  6. 多协程实例讲解(python 三)
  7. compareto方法_Java compareTo() 字符串方法
  8. Linux内存描述之概述--Linux内存管理(一)
  9. HUST 1555 A Math Homework
  10. 2015 Multi-University Training Contest 5