- 在 中创建一个新项目或打开现有项目
Xcode 11 Beta
。 UILabel
使用文本创建Plain
并保持系统字体为常规样式。
- 将文本类型更改为
Attributed
字符串并检查字体样式,似乎它会随着不同的字体样式而变化并且不保持相同。
PS:Xcode 10
工作正常。
根据苹果官方文档https://developer.apple.com/fonts/
顺丰临:
这种无衬线字体是 iOS、macOS 和 tvOS 的系统字体,包括一个圆角变体。它提供了一致、清晰和友好的印刷声音。
SF 紧凑型:
这种无衬线字体是 watchOS 的系统字体,包括一个圆角变体。它适用于广泛的内容,并且在各种情况下都易于阅读。
所以我们需要下载并安装SF Pro字体并设置UILabel
属性字符串字体样式,SF Pro Text Regular 18.0
以保持与纯文本相同的字体样式。
希望对你有帮助!
干杯!
看起来从 iOS13 和 XCode 11 开始,Apple 将属性字符串的系统字体更改为这种新的、衬线的、类似 Times 的字体 :(
(另见此处)
我不确定这是故意的还是iOS中的错误。我做了一个丑陋的解决方法来处理这个问题:
UIFont *font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
if (@available(iOS 13, *)) {
font = [UIFont fontWithName:@"SFUI-Regular" size:[UIFont systemFontSize]];
}