關(guān)于分辨率和字體窃诉,若要深入研究的話豆胸,恐怕得花上不少時(shí)間奥洼。在此僅對(duì)于iOS中的字體情況做個(gè)小概括。
首先看:
(1)同樣磅數(shù)的字體晚胡,在不同大小的屏幕上灵奖,他們的物理大小一樣嗎?例如都是16磅的系統(tǒng)字體估盘,在一英寸上瓷患,iPhone5,iPhone7遣妥,iPhone7 plus顯示的文字個(gè)數(shù)一樣嗎擅编?
UIFont *font = [UIFont systemFontOfSize:16];
(2)為什么PS中設(shè)置為72ppi時(shí),在開發(fā)時(shí)箫踩,在@2x屏幕上需要將字體的磅數(shù)除以2爱态,在@3x屏幕時(shí)需要除以3。
要解答上述兩個(gè)問題境钟,需要弄清iOS中的字體磅數(shù)Size到底是什么東西锦担。
在iOS中,font的size其實(shí)不同于印刷行業(yè)中的磅數(shù)吱韭。
印刷業(yè)中吆豹,
1 inch = 2.54cm = 25.4 mm = 72pt
1pt(磅) = 1 / 72 英寸 ≈ 0.35mm
但是對(duì)于iOS來說,字體的1個(gè)單位大小對(duì)應(yīng)于1個(gè)邏輯像素理盆,也就是一個(gè)設(shè)計(jì)點(diǎn)痘煤。下文中暫且沿用“磅數(shù)”來稱呼iOS中的字體單位大小。
回到最初的兩個(gè)問題
(1)同樣磅數(shù)的字體猿规,在不同大小的屏幕上衷快,他們的物理大小是不同的。plus機(jī)型大于其他機(jī)型姨俩,但是這個(gè)差值不是太大蘸拔。
例如一個(gè)16磅字體的文本师郑,原來 iPhone6 一英寸長度的屏幕里可以顯示的文字個(gè)數(shù)是:163/16 約等于10個(gè),這里假設(shè)每個(gè)文字之間沒有間隔调窍。
而6 plus 則是 154/16 約等于9個(gè)宝冕,也就是每個(gè)字所占的物理長度變大了。
iPhone6邓萨,1英寸有163個(gè)邏輯像素
iPhone6 plus地梨,1英寸有154個(gè)邏輯像素
(2)PS中的ppi表示的是1英寸長度的圖像包含有多少像素,它實(shí)際上跟打印的關(guān)系較大缔恳。
72ppi則表示一張72像素的圖像宝剖,當(dāng)它打印到真實(shí)的紙張中,打印出來的就是一副2.54cm的照片歉甚。
在ps當(dāng)中万细,如果設(shè)置ppi為72(默認(rèn)),則對(duì)于文本的字體纸泄,1pt = 1px(因?yàn)?2ppi的意思就是1英寸72像素赖钞,而1pt文本 = 1/72 英寸,所以相等)聘裁,要是在代碼中直接使用這個(gè)pt大小作為文本的size仁烹,最終的文本內(nèi)容就會(huì)偏大。所以這時(shí)候需要由美術(shù)給出字體的pt大羞只ⅰ(也是像素大小)计呈,然后交由程序自己處理砰诵。
如果設(shè)計(jì)圖是4.7寸的,也就是750*1334像素的捌显,則程序把pt大小除以2茁彭,就是font的大小。
如果設(shè)計(jì)圖是5.5寸的扶歪,也就是1242*2208像素的理肺,則程序把pt大小除以3,就是font的大小善镰。