iOS根据图片名进行自动适配(通过类别实现)

在实际开发应用中,美工通常都会根据不同的机型设计出很多套背景图片,而这些背景图片的命名通常都是有规律的,我们刚好可以利用这一特点把图片名称的修改或者拼接写成一个方法,然后根据不同的机型返回不同的适配图片,即可达到自动适配的目的,且避免了图片的失真。

首先,为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:@"[email protected]"];
    } else if (iPhone6) {
        name = [name fileNameAppend:@"[email protected]"];
    } else if (iPhone6Plus) {
        name = [name fileNameAppend:@"[email protected]"];
    }

    return [UIImage imageNamed:name];
}

@end

这样,通过这两个类别(分类),如果我想加载一张背景图片,无需考虑机型适配问题,只要传入background.jpg,程序就会根据机型是iPhone5、iPhone6还是iPhone6plus自动给图片名加入相应的后缀,再到工程中找到相应的图片加载到屏幕中,从而保证了图片不是真且不被拉伸

时间: 2024-10-06 15:40:37

iOS根据图片名进行自动适配(通过类别实现)的相关文章

Android # 图片自动适配屏幕,APK反编译详解,Google Maps Android API,Keytool

本文主题:(图片缩放)自动适配屏幕,APK反编译详解,Google Maps Android API,Keytool  (图片缩放)自动适配屏幕支持缩放旋转,自动居中的imageview http://deanandbai-gmail-com.iteye.com/blog/1850329 apk反编译工具 http://pan.baidu.com/s/1qWFcueC Android APK反编译详解 http://blog.csdn.net/ithomer/article/details/67

简单的IOS6和IOS7通过图片名适配

在美工提供图片图片的前提下,只需要下面给UIImage做一个分类,就可以简单的实现在6和7上的图片名字适配. 比如美工在6上面提供的图片叫common_button_big_red_highlighted.png,7上的名字[email protected],通过下面的简单代码就可以实现6和7的图片适配,而且在调用的时候十分方便,只需要通过[UIImage imageWithNamed:]就可以,跟体统自带的[UIImage imageNamed:]类似: + (UIImage *)imageW

iOS - 屏幕适配-之自动适配

最近把xcode升级到7,然后就是各种蛋疼的问题,出现,期中有一个就是屏幕适配的问题,由于 我的项目比较老,所以,一直没怎么注意过屏幕适配,都是ios 自动适配,这在ios8 之前都没有问题,但是在ios9后,这个问题就出现了,启动程序后,,出现上下边黑屏,找了些资料,弄明白: 从Xcode6 GM版本开始,模拟器新增了iPhone6和iPhone6 Plus两种,如果旧的工程直接跑到这两个模拟器中时,默认是"兼容模式",即系统会简单的把内容等比例放大,显示效果有些模糊但尚可接受.此时

【iOS开发】多屏尺的自动适配 AutoLayout (纯代码方式)

关于AutoLayout,最早从iOS6开始引入使用. 主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换. 网上大量的资料都在介绍xib和storyboard,如何使用AutoLayout,说纯代码使用AutoLayout进行UI布局的越来越少.对于我这个习惯了代码UI布局的人,写个备忘: AutoLayout是什么? 使用一句Apple的官方定义的话 AutoLayout是一种基于约束的,描述性的布局系统. Auto Layout Is a Constraint-Based, De

iOS 随笔小技巧 弱self 打印当前类行数列数,多人开发自动适配pch地址,获取设备uid的信息

$(SRCROOT)/PrefixHeader.pch自动适配pch地址 __weak __block typeof(self) weakself = self; __weak typeof(self)weakSelf = self; #define DN_DEBUG_LOG(fmt, ...) {NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); } NSDictionary *if

IOS中图片加载的一些注意点

图片的加载: [UIImage imageNamed:@"home"] //加载 png图片 在ios中获取一张图片只需要写图片名即可 不需要写后缀 默认都是加载.png的图片 但是因为屏幕尺寸不同 所有我们图片在加载时 系统也会做相应的处理 那么系统会如何处理呢? 下面做了讲解: 加入我们现在有这样三张图片  分别表示在不同屏幕尺寸在现实的图片 home.png   3.5 inch 非retina屏幕 [email protected] retina屏幕 [email protec

【译】UI设计基础(UI Design Basics)--自动适配与布局(Adaptivity and Layout)(四)

2.3  自动适配与布局(Adaptivity and Layout) 2.3.1  开发成自动适配(Build In Adaptivity) 用户通常希望在自己的所有设备,各种场景中使用他们喜欢的app.比如不同设备的不同方向以及在iPad上的分屏.尺寸类型(Size Classes)和自动布局(Auto Layout)可以通过定义屏幕的布局,视图控制器以及视图在屏幕显示环境变化时该如何适配帮你实现这个愿望.(这里的“显示环境”可以是整个屏幕也可以是屏幕中的一部分,如弹出框里面的部分或iPad

WordPress 中文图片 上传 自动重命名

WordPress 中文图片 上传 自动重命名 由于国人很少有在上传图片前将图片名重命名为英语的,所以自动重命名对于WP来说尤为重要,特别是LINUX的不支持中文名的. WordPress上传多媒体的代码都存放于\wp-admin\includes\里面的file.php,打开这个文件,filename=wpuniquefilename(uploads['path'], file[′name′],unique_filename_callback );// Move the file to the

uitable单元格高度自动适配

uitable单元格高度自动适配的前提是你要开启auto layout选项,不明白或者不熟悉的同学先看看这里 http://lvwenhan.com/ios/430.html 按照很多用例上的步骤,不想却踩了坑: 1,禁止实现代理函数 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 2,然后实现 - (CGFloat)tableView:(UITable