美文网首页推送iOS专业知识分享(iOS)
iOS对不同的屏幕进行字体适配

iOS对不同的屏幕进行字体适配

作者: Molary | 来源:发表于2016-05-23 13:09 被阅读5906次

1.在不同的手机上对应的字体大小可能不同,一般的来说在 iphone 4 5 6的手机上的字体是一样大小,在6P上的字体是4 5 6上的1.5倍,

下面进行label和button的字体适配

1.先创建label的延展

#import <UIKit/UIKit.h>
#import <objc/runtime.h>
@interface UILabel (DXFont)

@end



#import "UILabel+DXFont.h"
@implementation UILabel (DXFont)
+ (void)load{
//利用running time运行池的方法在程序启动的时候把两个方法替换 适用Xib建立的label
Method imp = class_getInstanceMethod([self class], @selector(initWithCoder:));
Method myImp = class_getInstanceMethod([self class], @selector(myInitWithCoder:));
method_exchangeImplementations(imp, myImp);  //交换方法
}

- (id)myInitWithCoder:(NSCoder*)aDecode{
[self myInitWithCoder:aDecode];
if (self) {
    //部分不像改变字体的 把tag值设置成LabelFontSize值的跳过
    if (IS_IPHONE_6P) {
        
        if(self.tag != LabelFontSize) {
            CGFloat fontSize = self.font.pointSize;
            self.font = [UIFont systemFontOfSize:fontSize*1.5];
        }   
    }
    }
return self;
}

2.button的实现

#import <UIKit/UIKit.h>
#import <objc/runtime.h>
@interface UIButton (DXFont)

@end


#import "UIButton+DXFont.h"
@implementation UIButton (DXFont)
+ (void)load{

//利用running time运行池的方法在程序启动的时候把两个方法替换 适用Xib建立的label
Method imp = class_getInstanceMethod([self class], @selector(initWithCoder:));
Method myImp = class_getInstanceMethod([self class], @selector(myInitWithCoder:));
method_exchangeImplementations(imp, myImp);  //交换方法
}

- (id)myInitWithCoder:(NSCoder*)aDecode{
[self myInitWithCoder:aDecode];
if (self) {
    //部分不像改变字体的 把tag值设置成2016跳过
    if (IS_IPHONE_6P) {
        if(self.tag != 2016) {
            CGFloat fontSize = self.titleLabel.font.pointSize;
              self.titleLabel.font = [UIFont systemFontOfSize:fontSize*1.5];
        }
    }
}
return self;
}

如果要适配根据不同的屏幕使用不同的尺寸把后面的1.5 换成 下面定义的宏就可以啦

//不同设备的屏幕比例(当然倍数可以自己控制)
#define SizeScale ((IPHONE_HEIGHT > 568) ? IPHONE_HEIGHT/568 : 1)

参考文档:http://www.jianshu.com/p/5815e81abb52

相关文章

  • iOS对不同的屏幕进行字体适配

    1.在不同的手机上对应的字体大小可能不同,一般的来说在 iphone 4 5 6的手机上的字体是一样大小,在6P上...

  • iOS字体适配的几种方法总结

    在iOS开发中,有些公司对字体也有适配要求,为了让字体美观,所以在不同尺寸的屏幕上字体大小也要做到适配。 自己总结...

  • ios字体适配的三种实现方法

    大家先看下IOS字体规范与多屏幕适配的规律和在不同尺寸屏幕适配的UI布局: 在项目中肯定会遇到字体适配的问题,从上...

  • iOS字体大小适配的几种方法

    在iOS开发中,有些公司对字体也有适配要求,为了让字体美观,所以在不同尺寸的屏幕上字体大小也要做到适配。自己总结了...

  • iOS字体大小适配

    在iOS开发中,有些公司对字体也有适配要求,为了让字体美观,所以在不同尺寸的屏幕上字体大小也要做到适配。自己总结了...

  • 屏幕适配

    适配 什么是适配?适应、兼容各种不同的情况 iOS开发中的适配?系统适配针对不同版本的操作系统进行适配屏幕适配针对...

  • iOS学习笔记24-不断进化的屏幕适配

    一、屏幕适配 iOS的屏幕适配可以分为3大块,代表着不同时期的屏幕适配主流: AutoResizing:在iOS6...

  • IOS不同屏幕下的字体适配

    iOS字体适配 废话不多,端上代码: 首先先定义这三个字体,可以给该页面或者cell上分成至少三种的选择 { ...

  • 屏幕适配

    基本概念 适配 概念:适合兼容各种不同的情况系统适配:针对不同系统版本进行适配屏幕适配:针对不同大小的屏幕尺寸进行...

  • iOS字体适配

    随着iPhone机型种类的增加,iOS的小开发仔们各种机型的屏幕适配,字体适配是否困扰着你呢?我们都知道屏幕适配有...

网友评论

本文标题:iOS对不同的屏幕进行字体适配

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