- 對(duì)于APP中使用的字體,我們大部分都是使用系統(tǒng)自帶的粥鞋,有時(shí)候也會(huì)碰到使用一些自定義的字體,根據(jù)設(shè)計(jì)需求而定
- 這里對(duì)自定義字體的一些介紹
一般自定義字體分為三種后綴格式:分別為:ttc、ttf臼节、otf
a. TTC字體是TrueType字體集成文件(. TTC文件)接剩,是在一單獨(dú)文件結(jié)構(gòu)中包含多種字體,以便更有效地共享輪廓數(shù)據(jù),當(dāng)多種字體共享同一筆畫時(shí),TTC技術(shù)可有效地減小字體文件的大小切厘。TTC是幾個(gè)TTF合成的字庫,安裝后字體列表中會(huì)看到兩個(gè)以上的字體
b. TTF是apple和微軟共同推出的字體文件格式懊缺,TTF字體只包含一種字型
c. OTF是TTF的升級(jí)版疫稿,支持更高級(jí)特性的字體
導(dǎo)入自定義字體的實(shí)現(xiàn)方法:
1. 將字體文件添加到工程項(xiàng)目中
image.png
2. 在Info.plist中添加字體文件的名稱(帶后綴)
image.png
3. 獲取所添加字體的字體名稱FontName
- (void)getFontNames {
// 字體族名
NSArray *familyNames = [UIFont familyNames];
NSLog(@"familyNames-->%lu",familyNames.count);
for(int i = 0; i < familyNames.count; i++) {
NSLog(@"所有字體族名-->%@", familyNames[i]);
NSArray *fontNames = [UIFont fontNamesForFamilyName:familyNames[i]];
for(int j = 0; j < fontNames.count; j++) {
NSLog(@"FontName-->%@",fontNames[j]);
}
}
}
打印結(jié)果:image.png
根據(jù)打印出來的字體族名查找到所添加的字體名稱進(jìn)行設(shè)置。
4. 設(shè)置字體 (需要獲取所添加的字體名稱)
static inline UIFont *cc_PuHuiTiHFont(CGFloat fontSize)
{
// AlibabaPuHuiTiH:字體名稱 鹃两,fontSize:字體大小
UIFont *font = [UIFont fontWithName:@"AlibabaPuHuiTiH" size:fontSize];
if (!font) {
font = [UIFont systemFontOfSize:fontSize];
}
return font;
}
static inline UIFont *cc_DINBoldFont(CGFloat fontSize)
{
// DIN-Bold:字體名稱
UIFont *font = [UIFont fontWithName:@"DIN-Bold" size:fontSize];
if (!font) {
font = [UIFont systemFontOfSize:fontSize];
}
return font;
}
5. 實(shí)現(xiàn)效果
- (void)addControls {
UILabel *lb = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];
lb.textColor = UIColor.redColor;
lb.font = cc_DINBoldFont(30);
lb.text = @"123456";
[self.view addSubview:lb];
UILabel *lb1 = [[UILabel alloc] initWithFrame:CGRectMake(100, 210, 200, 100)];
lb1.textColor = UIColor.orangeColor;
lb1.font = cc_PuHuiTiHFont(30);
lb1.text = @"123456";
[self.view addSubview:lb1];
}
打印結(jié)果:image.png