6
  1. 在 中创建一个新项目或打开现有项目Xcode 11 Beta
  2. UILabel使用文本创建Plain并保持系统字体为常规样式。

在此处输入图像描述

  1. 将文本类型更改为Attributed字符串并检查字体样式,似乎它会随着不同的字体样式而变化并且不保持相同。

在此处输入图像描述

PS:Xcode 10工作正常。

4

2 回答 2

2

根据苹果官方文档https://developer.apple.com/fonts/

顺丰临:

这种无衬线字体是 iOS、macOS 和 tvOS 的系统字体,包括一个圆角变体。它提供了一致、清晰和友好的印刷声音。

SF 紧凑型:

这种无衬线字体是 watchOS 的系统字体,包括一个圆角变体。它适用于广泛的内容,并且在各种情况下都易于阅读。

所以我们需要下载并安装SF Pro字体并设置UILabel属性字符串字体样式,SF Pro Text Regular 18.0以保持与纯文本相同的字体样式。

希望对你有帮助!

干杯!

于 2019-06-06T03:40:08.567 回答
2

看起来从 iOS13 和 XCode 11 开始,Apple 将属性字符串的系统字体更改为这种新的、衬线的、类似 Times 的字体 :(

另见此处

我不确定这是故意的还是iOS中的错误。我做了一个丑陋的解决方法来处理这个问题:

UIFont *font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
if (@available(iOS 13, *)) {
    font = [UIFont fontWithName:@"SFUI-Regular" size:[UIFont systemFontSize]];
}
于 2019-10-01T09:47:31.480 回答