首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定iOS上支持的字体样式的最佳方法是什么?

确定iOS上支持的字体样式的最佳方法是什么?
EN

Stack Overflow用户
提问于 2011-04-27 23:03:36
回答 2查看 913关注 0票数 2

我找不到一种简单的方法来确定字体是否支持iOS上的粗体或斜体样式。我目前的解决方案是基于尝试创建一个具有所需字体样式的CTFont:

代码语言:javascript
复制
CTFontRef ctFont = CTFontCreateWithName(fontName, pointSize, NULL);
CTFontRef boldFont = CTFontCreateCopyWithSymbolicTraits(ctFont, 0.0, NULL, kCTFontBoldTrait, kCTFontBoldTrait);
if (boldFont) {
// supports bold font face
}

虽然这很好用,但不知何故,它似乎不是最好的方法。有没有更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-27 23:27:12

如果您使用UIFont,我猜您可以只迭代fontNamesForFamilyName:

代码语言:javascript
复制
for (NSString *fontName : [UIFont fontNamesForFamilyName:fontName]) {
    if ([fontName rangeOfString:@"Bold"].location != NSNotFound) {
       //supports bold font face
    }
}

也许也不是很好。粗体字体并不总是用文本' bold‘定义的,有些字体使用轻便和中等。http://www.iphonedevsdk.com/forum/iphone-sdk-development/6000-list-uifonts-available.html

票数 2
EN

Stack Overflow用户

发布于 2011-04-28 00:40:32

有时甚至很难弄清楚家族名称,特别是对于自定义字体。通常只是打印出所有的字体来检查可用的字体。你可以从中找出所有的风格,例如粗体,斜体,缩写粗体等

代码语言:javascript
复制
NSArray *familyNames = [UIFont familyNames];
for (NSString *familyName in familyNames)
{
    NSSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
    NSLog(@"%@", fontNames);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5806256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档