【问题标题】:UIFont Helvetica-Regular font issueUIFont Helvetica-Regular 字体问题
【发布时间】:2013-09-09 02:10:42
【问题描述】:
我需要使用 Helvetica-Regular 创建 UIFont,我使用以下代码:
UIFont *font = [UIFont fontWithName:@"Helvetica-Regular" size:size];
但是字体是空的。
如何正确地做到这一点?
【问题讨论】:
标签:
iphone
ios
objective-c
uifont
【解决方案1】:
调试器有助于找到可用的字体类型:-
(lldb) po [UIFont fontNamesForFamilyName:@"Helvetica"]
(id) $1 = 0x079d8670 <__NSCFArray 0x79d8670>(
Helvetica
Helvetica-Bold
Helvetica-BoldOblique
Helvetica-Light
Helvetica-LightOblique
Helvetica-Oblique
)
所以,你可以试试他们中的任何一个。
礼貌:- https://stackoverflow.com/a/11741389/1865424
【解决方案2】:
您可以像这样记录特定字体系列的所有可用样式:
NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Helvetica"]) ;
>
FontTest[41050:c07] (
"Helvetica-LightOblique",
Helvetica,
"Helvetica-Oblique",
"Helvetica-BoldOblique",
"Helvetica-Bold",
"Helvetica-Light"
)
您可能正在追求“Helvetica”...
【解决方案3】:
Helvetica-Regular 在 iOS 中不作为字体名称。有关字体名称的更多详细信息,请使用 iOS 版本检查 this link。
【解决方案4】:
UIFont *font = [UIFont fontWithName:@"Helvetica" size:size];
要发现所有可用的字体及其名称:
+(void)dumpDescriptionOfAllAvailableFonts {
NSMutableArray *allFonts = [NSMutableArray array];
NSLog(@"%d font families", [[UIFont familyNames] count]);
for(NSString *familyName in [UIFont familyNames]) {
for(NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
[allFonts addObject:fontName];
}
}
NSLog(@"%d fonts", [allFonts count]);
for(NSString *fontName in [allFonts sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"description" ascending:YES]]]) {
NSLog(@"%@",[fontName description]);
}
}
【解决方案5】:
没有字体名称为Helvetica-regular
您可以使用以下表单
Helvetica
Helvetica-Bold
Helvetica-BoldOblique
Helvetica-Light
Helvetica-LightOblique
Helvetica-Oblique