一、iOS原生字體展示
在label中選擇字體的font,并把font由system改成custom后,就能在family中看到72種特殊字體。這些里面就有很炫的字體,但是全部是只針對英文數字,對中文無效。寫了一個程序把所有的原生樣式遍歷出來展示可以達到如下效果??梢郧宄乜吹矫總€字體對應的樣式,不用再一個個試了。
一共是72種樣式,我這個demo程序有兩種展示方法,簡潔展示和詳細展示,簡潔展示中只會把每個family的第一個font拿出來展示。最后一張圖是詳細展示界面的。分了group展示,每個section對應一個family??梢钥闯鎏O果的原生字體還是有很多美觀的字體,只是都僅對英文支持。
相信現在大部分的軟件大部分的項目都是這么寫代碼的:
label.font = [UIFont systemFontOfSize:14];
如果不想用默認系統字體則需要使用此方法賦值:
UIFont *font = [UIFont fontWithName:@"Georgia" size:14];
這里傳進Name里的參數是familyName而不是fontName。
二、獲取family名稱
那么如何獲取這個family的名稱?
方法1:在storyboard中或是xib中用label的圖形化界面選中一個自己喜歡的樣式,然后把名稱記下寫到代碼中。
方法2:上面就有啊,從上面5張圖中選吧。
方法3:(推薦)遍歷
在UIFont類中有這些關于家族名和字體名的開放API,通過這些可以清晰的寫個遍歷打印,查看所有的familyName和其中包含的fontName
int i = 0;
for(NSString *fontfamilyname in [UIFont familyNames])
{
NSLog(@"family:'%@'",fontfamilyname);
for(NSString *fontName in [UIFont fontNamesForFamilyName:fontfamilyname])
{
NSLog(@"tfont:'%@'",fontName);
}
NSLog(@"-------------%d",i++);
}
使用上面的代碼即可遍歷打印出所有的名稱,然后從打印中復制名稱到代碼中個人感覺更為科學。
三、外界字體引入項目
本人親測,在網上不管是windows字體,還是Android字體只要是ttf格式的,一般iOS程序都支持內嵌。
具體步驟也很簡單:
1.將ttf文件拖入項目中
2.修改plist文件,加入Fonts provided by application 配置,后面填上拖進來的項目名
3.就可以在圖形化界面看到新的字體選擇了
4.如果不想從IB界面找,建議使用一下上面的遍歷打印,可以用循環打印數量來最直接的看是否導入成功,并找到自己需要的內容。
新聞熱點
疑難解答