成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讀完它iOS字體就沒什么難的了!

移動(dòng)開發(fā) iOS
在label中選擇字體的font,并把font由system改成custom后,就能在family中看到72種特殊字體。這些里面就有很炫的字體,但是全部是只針對英文數(shù)字,對中文無效。寫了一個(gè)程序把所有的原生樣式遍歷出來展示可以達(dá)到如下效果。可以清楚地看到每個(gè)字體對應(yīng)的樣式,不用再一個(gè)個(gè)試了。 如果你不是在董鉑然博客園看到本文,請點(diǎn)擊查看原文。

[[145301]]

寫本文的契機(jī)主要是把自己整理的關(guān)于iOS字體方面的知識(shí)不斷更新寫在這篇博文中,用來自己以后查閱。

一、iOS原生字體展示

在label中選擇字體的font,并把font由system改成custom后,就能在family中看到72種特殊字體。這些里面就有很炫的字體,但是全部是只針對英文數(shù)字,對中文無效。寫了一個(gè)程序把所有的原生樣式遍歷出來展示可以達(dá)到如下效果。可以清楚地看到每個(gè)字體對應(yīng)的樣式,不用再一個(gè)個(gè)試了。

 

 

 

一共是72種樣式,我這個(gè)demo程序有兩種展示方法,簡潔展示和詳細(xì)展示,簡潔展示中只會(huì)把每個(gè)family的第一個(gè)font拿出來展示。最后一張圖是詳細(xì)展示界面的。分了group展示,每個(gè)section對應(yīng)一個(gè)family。可以看出蘋果的原生字體還是有很多美觀的字體,只是都僅對英文支持。

相信現(xiàn)在大部分的軟件大部分的項(xiàng)目都是這么寫代碼的:

  1. label.font = [UIFont systemFontOfSize:14]; 

如果不想用默認(rèn)系統(tǒng)字體則需要使用此方法賦值:

  1. UIFont *font = [UIFont fontWithName:@"Georgia" size:14]; 

這里傳進(jìn)Name里的參數(shù)是familyName而不是fontName。

二、獲取family名稱

那么如何獲取這個(gè)family的名稱?

方法1:在storyboard中或是xib中用label的圖形化界面選中一個(gè)自己喜歡的樣式,然后把名稱記下寫到代碼中。

方法2:上面就有啊,從上面5張圖中選吧。

方法3:(推薦)遍歷

在UIFont類中有這些關(guān)于家族名和字體名的開放API,通過這些可以清晰的寫個(gè)遍歷打印,查看所有的familyName和其中包含的fontName

 

  1. int i = 0
  2. for(NSString *fontfamilyname in [UIFont familyNames]) 
  3. NSLog(@"family:'%@'",fontfamilyname); 
  4. for(NSString *fontName in [UIFont fontNamesForFamilyName:fontfamilyname]) 
  5. NSLog(@"\tfont:'%@'",fontName); 
  6. NSLog(@"-------------%d",i++); 

使用上面的代碼即可遍歷打印出所有的名稱,然后從打印中復(fù)制名稱到代碼中個(gè)人感覺更為科學(xué)。

三、外界字體引入項(xiàng)目

本人親測,在網(wǎng)上不管是windows字體,還是Android字體只要是ttf格式的,一般iOS程序都支持內(nèi)嵌。

具體步驟也很簡單:

1.將ttf文件拖入項(xiàng)目中

 

2.修改plist文件,加入Fonts provided by application 配置,后面填上拖進(jìn)來的項(xiàng)目名

 

3.就可以在圖形化界面看到新的字體選擇了

 

4.如果不想從IB界面找,建議使用一下上面的遍歷打印,可以用循環(huán)打印數(shù)量來最直接的看是否導(dǎo)入成功,并找到自己需要的內(nèi)容。

5.運(yùn)行項(xiàng)目得到自己想要的結(jié)果

 

四、動(dòng)態(tài)字體

動(dòng)態(tài)字體-Dynamic Type源于iOS7引入的一個(gè)文本渲染框架TextKit。主要的作用就是可以系統(tǒng)自設(shè)大小。當(dāng)下的蘋果已經(jīng)做了越來越多的人性化的處理,甚至連盲人模式都有。對于字體的展示也是考慮到了各人的喜好,有的人喜歡看大字,有的人喜歡看小字。在動(dòng)態(tài)字體出來之前,有的應(yīng)用也考慮到了此用戶體驗(yàn),比如網(wǎng)易新聞以前就有能夠在應(yīng)用中設(shè)置偏好的字體大小功能。蘋果也整合到了整個(gè)手機(jī)中,動(dòng)態(tài)字體的思想就是:在setting中設(shè)置字體大小,不單單系統(tǒng)的字體會(huì)變,連應(yīng)用程序中的字體大小也會(huì)隨之改變。前提是你應(yīng)用程序中的字體的代碼寫的符合要求。

 

前面的文章大部分說的都是要在字體中選custom,這時(shí)要考慮動(dòng)態(tài)字體就有選 Text Styles中的選項(xiàng)了。

 

  1. UIFontTextStyleHeadline 
  2.  
  3. UIFontTextStyleBody 
  4.  
  5. UIFontTextStyleSubheadline 
  6.  
  7. UIFontTextStyleFootnote 
  8.  
  9. UIFontTextStyleCaption1 
  10.  
  11. UIFontTextStyleCaption2 

 

這些樣式顧名思義,就不每個(gè)都列出顯示效果了。標(biāo)題,子標(biāo)題,正文等等都是一些比較樸素。 我感覺這也就相當(dāng)于word中的“樣式”,把自己的每個(gè)章節(jié)的標(biāo)題子標(biāo)題選中設(shè)置成標(biāo)題一或者標(biāo)題二 然后就能用word的自動(dòng)生成目錄功能,并且一改某個(gè)樣式里詳細(xì)設(shè)置,每個(gè)標(biāo)題子標(biāo)題的格式也都會(huì)隨之改變。 這里就是如果你在代碼中把字體用這些樣式,那你在手機(jī)setting里設(shè)置大小之后應(yīng)用字體會(huì)有所反應(yīng)。

設(shè)置字體的位置是: 設(shè)置-》顯示與亮度-》文字大小

 

如上左圖是把尺寸調(diào)到了最大后的效果,下面的提示語只有到最大才會(huì)顯示。 我試了下QQ里的字體設(shè)置的都是動(dòng)態(tài)字體,微信和支付寶暫時(shí)還不支持動(dòng)態(tài)大小,在字體尺寸設(shè)置很大后微信支付寶沒反應(yīng),QQ則響應(yīng)改變。上面右圖是在iphone6上截到QQ客戶端的展示效果。

設(shè)置動(dòng)態(tài)字體的代碼實(shí)現(xiàn)如下:

UIFont *font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];

項(xiàng)目中建議把動(dòng)態(tài)字體和自動(dòng)布局結(jié)合起來用,以防止字體設(shè)置改變后出現(xiàn)錯(cuò)位Bug。 

五、字體描述符

字體描述符-UIFontDescriptor 也是TextKit的核心之一,大致意思就是:字體描述符可以把一個(gè)你不知道詳情的font樣式臨時(shí)存起來做修改或賦值給別人使用。在使用了上面的動(dòng)態(tài)字體之后,可能你只知道現(xiàn)在的text-Style但是詳細(xì)的familyName,fontName都不知道是什么,這種情況下如果想修改字體的樣式為斜體或粗體就只能使用這種方法:

 

  1. // ------取出當(dāng)前正文的字體樣式 
  2. UIFontDescriptor *bodyFontDesciptor = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody]; 
  3. // ------把樣式改為斜體 
  4. UIFontDescriptor *italicFontDescriptor = [bodyFontDesciptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic]; 
  5. // ------賦值給另一個(gè)label。 
  6. self.titleLabel.font = [UIFont fontWithDescriptor:italicFontDescriptor size:0.0]; 
  7.  
  8. 關(guān)于樣式一共有四種可選: 
  9.  
  10. UIFontDescriptorTraitItalic 
  11.  
  12. UIFontDescriptorTraitExpanded 
  13.  
  14. UIFontDescriptorTraitCondensed 
  15.  
  16. UIFontDescriptorTraitBold 

 

字體描述符還有一個(gè)API是通過詳細(xì)屬性字典設(shè)置一個(gè)label的樣式,寫法如下

 

  1. UIFontDescriptor *attributeFontDescriptor = [UIFontDescriptor fontDescriptorWithFontAttributes: 
  2. @{UIFontDescriptorFamilyAttribute: @"Avenir Next Condensed"
  3. UIFontDescriptorNameAttribute:@"AvenirNextCondensed-Italic"
  4. UIFontDescriptorSizeAttribute: @40.0, 
  5. UIFontDescriptorMatrixAttribute:[NSValue valueWithCGAffineTransform:CGAffineTransformMakeRotation(M_1_PI*1.5
  6. ]}]; 
  7. label.font = [UIFont fontWithDescriptor:attributeFontDescriptor size:0.0]; 

這上面分別設(shè)置了家族名,字體名,尺寸,形變,最后的size填0.0就可以,如果填了一個(gè)值,那這個(gè)值會(huì)把上面字典中的尺寸覆蓋,感覺一般情況下應(yīng)該不會(huì)有人這么蛋疼用這種方法建樣式,這個(gè)Attribute按command點(diǎn)進(jìn)去還有很多,大多都是平時(shí)用不到的,有興趣的可以一個(gè)一個(gè)鉆研,好像一共有十幾個(gè)。

上面這段代碼創(chuàng)建的label會(huì)顯示成這樣:

 

六、擴(kuò)展字體樣式

上面說了原生全部不支持中文,但是我們用中文的人還是比較多,中文字體現(xiàn)在在網(wǎng)上搜索結(jié)果很多,但是大部分都不是想要的結(jié)果,要不就是不會(huì)讓你那么簡單下載的。我整理了一個(gè)常用的字體樣式包,里面大致包括:

華文行楷,華文琥珀,華文新魏,隸書 等等這些熟悉的名字

純凈下載地址:http://pan.baidu.com/s/1hqfGdpE 密碼:31qs

除了這些常用樣式,還有一些非常規(guī)的字體樣式,當(dāng)然好的字體遇到時(shí)我會(huì)積累,并整理在下面,不要求多,只要求精。

純凈下載地址:http://pan.baidu.com/s/1i38etV3 密碼:hnv7

 

 

如果有非常推薦的字體也歡迎告訴我 我整理在一起。

責(zé)任編輯:chenqingxiang 來源: 董博然的博客
相關(guān)推薦

2022-05-08 22:03:19

UDPTCP協(xié)議

2021-05-07 06:15:32

編程開發(fā)端口掃描

2023-05-09 13:55:08

GPT-4AI

2025-02-14 08:53:24

2018-09-28 09:32:57

2019-12-23 14:04:07

蘋果芯片iPhone

2015-11-02 09:49:04

Android屏幕適配官方指導(dǎo)

2014-01-23 14:42:34

Windows 9

2020-06-28 14:21:58

iSO 14Android安卓

2022-06-06 17:36:11

物聯(lián)網(wǎng)顛覆物聯(lián)網(wǎng)

2022-04-02 20:28:12

Reactcotnext前端

2023-05-31 07:32:37

2019-12-12 10:02:29

滴滴數(shù)據(jù)中臺(tái)

2020-11-02 13:25:45

Redis數(shù)據(jù)庫開源

2019-08-20 15:22:40

GitHub代碼開發(fā)者

2011-03-17 10:16:18

iPhoneNetflix

2020-02-21 16:43:00

C語言編程語言程序員

2019-05-16 08:51:22

物聯(lián)網(wǎng)獲利IOT

2022-02-16 10:35:19

IBM

2024-12-09 09:30:00

適配器模式設(shè)計(jì)模式代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美黄a| 精品福利视频一区二区三区 | 午夜二区| av天天看 | 国产高清视频一区二区 | 一区二区成人 | 日韩欧美在线免费观看视频 | 亚洲电影第1页 | 日韩不卡一区二区三区 | 91精品国产91久久久久久三级 | 波多野吉衣在线播放 | 久久久久国产 | 国产精品视频在线播放 | 国产视频1| 成人网av | 成人免费视频播放 | 欧美成人精品一区二区男人看 | 成人av在线播放 | 久久亚洲一区二区三区四区 | 日日操日日干 | 日韩精品视频在线观看一区二区三区 | 韩日一区二区三区 | 亚洲成人www | 欧美 日韩 国产 成人 | 国产精品亚洲一区 | 免费在线视频精品 | 九九伦理电影 | 婷婷丁香在线视频 | 精品av天堂毛片久久久借种 | 精品国产一区二区三区四区在线 | 成人一区二区三区在线观看 | 91影院 | 91精品久久久久久久久 | 成人久草 | 青青久久久 | 91免费福利视频 | 国产九九九九 | 亚洲国产欧美日韩 | 中文字幕在线观看视频一区 | 午夜一区二区三区 | 精品久久国产老人久久综合 |