iOS图片的自动适配(通过类别实现)
2016-05-08 10:23
323 查看
在实际开发应用中,美工通常都会根据不同的机型设计出很多套背景图片,而这些背景图片的命名通常都是有规律的,我们刚好可以利用这一特点把图片名称的修改或者拼接写成一个方法,然后根据不同的机型返回不同的适配图片,即可达到自动适配的目的,且避免了图片的失真。
首先,为NSString新建立一个分类,专门用来在图片名后面拼接对应的屏幕信息
接着,对UIImage写一个分类,功能是传入图片名,返回给我相应机型的适配图片
这样,通过这两个类别(分类),如果我想加载一张背景图片,无需考虑机型适配问题,只要传入background.jpg,程序就会根据机型是iPhone5、iPhone6还是iPhone6plus自动给图片名加入相应的后缀,再到工程中找到相应的图片加载到屏幕中,从而保证了图片不是真且不被拉伸
首先,为NSString新建立一个分类,专门用来在图片名后面拼接对应的屏幕信息
#import "NSString+append.h" @implementation NSString (append) -(NSString *)fileNameAppend:(NSString *)string { //拿到扩展名 NSString *extension = [self pathExtension]; //去掉扩展名 NSString *fileName = [self stringByDeletingPathExtension]; //拼接字符串名称 fileName = [fileName stringByAppendingString:string]; //加入扩展名 NSString *newFileName = [fileName stringByAppendingPathExtension:extension]; //返回处理好的图片名 return newFileName; } @end
接着,对UIImage写一个分类,功能是传入图片名,返回给我相应机型的适配图片
#import "UIImage+adjustImage.h" #import "NSString+append.h" @implementation UIImage (adjustImage) -(UIImage *)addImageNameForFit:(NSString *)name { //进行判断,对不同的机型加入不同的图片名称的后缀,返回不同的适配图片 if (iPhone5) { name = [name fileNameAppend:@"-568h@2x"]; } else if (iPhone6) { name = [name fileNameAppend:@"-667h@2x"]; } else if (iPhone6Plus) { name = [name fileNameAppend:@"-736h@2x"]; } return [UIImage imageNamed:name]; } @end
这样,通过这两个类别(分类),如果我想加载一张背景图片,无需考虑机型适配问题,只要传入background.jpg,程序就会根据机型是iPhone5、iPhone6还是iPhone6plus自动给图片名加入相应的后缀,再到工程中找到相应的图片加载到屏幕中,从而保证了图片不是真且不被拉伸
相关文章推荐
- IOS开发学习-基础环境搭建-1
- iOS三种多线程编程的技术介绍
- iOS开发多线程篇—多线程的的相关概念(1)
- iOS多线程篇:NSThread
- ios中URL中出现字典参数的处理问题
- IOS 模仿TableView封装
- iOS 返回时tableview内容上移
- iOS label根据内容自适应宽度
- IOS博客项目搭建-13-发微博弹窗
- iOS开发Touch ID的简单使用
- iOS开发--TableView详细解释
- IOS CoreAnimation
- iOS开发者必看的全球100个最佳博客
- iOS开发中的错误整理,启动图片设置了没有效果;单独创建xib需要注意的事项;图片取消系统渲染的快捷方式
- ios 绘图
- iOS 指纹识别
- IOS9中联系人对象的使用及增删改查操作的函数封装
- iOS8.0以后的相册
- iOS开发代码规范(通用)
- iOS 内存管理基本原则