gpt4 book ai didi

ios - 哪些字体可以保证在 iOS 设备上可用?

转载 作者:行者123 更新时间:2023-11-29 13:06:23 24 4
gpt4 key购买 nike

我想知道哪些字体可以保证在 iOS 设备上可用。

我用过这个,效果很好:

[[UITabBarItem appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor grayColor], UITextAttributeTextColor,
[UIColor lightGrayColor], UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(1, 1)], UITextAttributeTextShadowOffset,
[UIFont fontWithName:@"Helvetica Bold" size:0.0], UITextAttributeFont,
nil]
forState:UIControlStateNormal];

然后我认为将新语法用于字典可能会更好更方便,所以我尝试了这个:

[[UITabBarItem appearance] setTitleTextAttributes:@{
UITextAttributeFont : [UIFont fontWithName:@"Helvetica-Bold" size:0.0f],
UITextAttributeTextColor : [UIColor grayColor],
UITextAttributeTextShadowColor : [UIColor lightGrayColor],
UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetMake(1.0f, 1.0f)],
} forState:UIControlStateNormal];

它确实有效,但有一些我担心的问题。

最初,我尝试过这种字体,[UIFont fontWithName:@"Helvetica Bold"size:0.0]。该字体实际上不存在,因此返回的 UIFontnil

使用 dictionaryWithObjectsAndKeys 的旧方法可以很好地处理 nil 字体,但新的 @{} 语法会使应用崩溃。

我能够通过使用正确的字体名称@"Helvetica-Bold"(需要连字符)来解决这个问题,但我担心选择字体并使用此语法(如果有)设备可能没有可用的选定字体并崩溃。

由于使用 dictionaryWithObjectsAndKeys 的旧方法工作正常,而且显然可以处理 nil 字体,我倾向于只使用它,晚上睡个好觉。

我当然可以用逻辑来检查 nil 字体并采取措施来处理它,但看起来这是一种不必要的时间浪费,因为旧方法可以处理这种情况。

是否总是使用旧语法会更好,因为无法确定 future 设备上可能提供哪些字体?

Apple 对这个问题有点失望。

有什么想法、意见或建议吗?

最佳答案

你可以使用

NSArray *familyNames = [UIFont familyNames];

然后对于数组中的每个 familyName,您可以看到可用的字体名称为:

 NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];

这将为您提供设备上可用字体名称的列表。

关于ios - 哪些字体可以保证在 iOS 设备上可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com