ios字型適配的三種實現方法

2021-09-30 16:28:02 字數 2718 閱讀 3817

ios字型規範與多螢幕適配1

ios字型規範與多螢幕適配2

方法一:利用running time執行時,替換方法的方法進行適配字型

**如下:

//

// uifont+zspsize.h

// zspuifonttext

//// created by zsp on 2017/5/18.

//#import #import @inte***ce uifont (zspsize)

@end

//

// uifont+zspsize.m

// zspuifonttext

//// created by zsp on 2017/5/18.

//#define myuiscreen 375 // ui設計原型圖的手機尺寸寬度(6s), 6p的--414

#define is_iphone_4 ([[uiscreen mainscreen] bounds].size.height == 480.0f)

#define is_iphone_5 ([[uiscreen mainscreen] bounds].size.height == 568.0f)

#define is_iphone_6 ([[uiscreen mainscreen] bounds].size.height == 667.0f)

#define is_iphone_6_plus ([[uiscreen mainscreen] bounds].size.height == 736.0f)

// 這裡設定iphone6放大的字型大小數(現在是縮小2號,也就是iphone6上字型大小為17,在iphone4s和iphone5上字型為15時,)

#define iphone5_increment 2

// 這裡設定iphone6plus放大的字型大小數(現在是放大1號,也就是iphone6上字型大小為17,在iphone6p上字型為18時)

#define iphone6plus_increment 1

#import "uifont+zspsize.h"

@implementation uifont (zspsize)

+(void)load

//在6p上字型擴大1.5倍

+(uifont *)adjustfont:(cgfloat)fontsizeelse

return newfont;

}//以6s未基準(因為一般ui設計是以6s尺寸為基準設計的)的字型。在5s和6p上會根據螢幕尺寸,字型大小會相應的擴大和縮小

//+ (uifont *)adjustfont:(cgfloat)fontsize

//以6s未基準(因為一般ui設計是以6s尺寸為基準設計的)的字型。在5s和6p上會根據螢幕尺寸,字型大小會相應的擴大和縮小

//在6s上字型大小是17,在6p是上字型大小擴大到18號(字型大小擴大1個字型大小),在4s和5s上字型大小縮小到15號字(字型大小縮小2個字型大小)

//+(uifont *)adjustfont:(cgfloat)fontsizeelse if (is_iphone_6_plus)else

// return newfont;

//}@end

注意:

load方法只會走一次,利用runtime的method進行方法的替換

替換的方法裡面(把系統的方法替換成我們自己寫的方法),這裡要記住寫自己的方法,不然會死迴圈

之後凡是用到systemfontofsize方法的地方,都會被替換成我們自己的方法,即可改字型大小了

注意:此方法只能替換 純** 寫的控制項字型大小,如果你用xib建立的控制項且在xib裡面設定的字型大小,那麼替換不了!你需要在xib的

awakefromnib方法裡面手動設定下控制項字型

方法二:用巨集定義適配字型大小(根據手機尺寸判斷)

1.5代表6p尺寸的時候字型為1.5倍,5s和6尺寸時大小一樣,也可根據需求自定義比例。

**如下:

#define isiphone6p          screen_width==414

#define sizescale (isiphone6p ? 1.5 : 1)

#define kfontsize(value) value*sizescale

#define kfont(value) [uifont systemfontofsize:value*sizescale]

方法三:用巨集定義適配字型大小(根據手機機型判斷)

//巨集定義

#define font_size(size) ([uifont systemfontofsize:fontsize(size))

/** * 字型適配 我在pc**件定義了乙個方法

*/static inline cgfloat fontsize(cgfloat fontsize)else if (screenwidth==375)else

}

詳解iOS設定字型的三種方式

有時候專案需要顯示一些非系統的字型達到一些ui的效果,目前設定字型有三種方式,預設方式 bundle方式,coretext方式。1 預設方式 這種方式就是正常的字型設定方式 label.font uifont fontwithname blazed size 42 至於第乙個引數的名字,可以通過以下...

Unity UGUI Canvas的三種適配模式

canvas 的 canvas scaler 元件就是用來做適配的。ui scale mode 設定為scale with screen size時,可在下方設定乙個預設尺寸。在 editor上設計 ui 時就是根據這個預設尺寸進行布局。針對不同螢幕的解析度,會根據screen match mode...

三種實現執行緒的方法

1.通過繼承thread實現執行緒 public class mythread extends thread public static void main string args 2.通過實現runnable實現執行緒 public class runnabledemo implements ru...