Xcode 11 Beta 中字体样式发生变化的问题
Posted
技术标签:
【中文标题】Xcode 11 Beta 中字体样式发生变化的问题【英文标题】:Font style gets changed issue in Xcode 11 Beta 【发布时间】:2019-06-06 03:05:51 【问题描述】:-
在
Xcode 11 Beta
中创建新项目或打开现有项目。
使用Plain
文本创建UILabel
,并保持系统字体为常规样式。
-
将文本类型更改为
Attributed
字符串并检查字体样式,似乎它随着字体样式的不同而变化并且不保持相同。
PS:Xcode 10
工作正常。
【问题讨论】:
问题解决了吗? 下载并安装 SF Pro 字体,然后简单地从列表中设置。 【参考方案1】:根据苹果官方文档https://developer.apple.com/fonts/
SF 专业版:
这种无衬线字体是 ios、macOS 和 tvOS 的系统字体, 并包括一个圆形变体。它提供了一致的、清晰的和 友好的排版声音。
SF 紧凑型:
这个无衬线字体是watchOS的系统字体, 并包括一个圆形变体。它适合广泛的内容和 在各种情况下都易于阅读。
所以我们需要下载并安装SF Pro字体,并将UILabel
属性字符串字体样式设置为SF Pro Text Regular 18.0
,以保持与纯文本相同的字体样式。
希望对您有所帮助!
干杯!
【讨论】:
对不起,我不太明白你的回答。这是否意味着现在我们必须告诉系统使用具有某些字体大小的“SF Pro”而不是使用 UIFont.preferredFont(forTextStyle: .caption1),例如? 其实,是的!在我的特殊情况下,问题不是由 XCode 触发的,它是 Swift Rich String 库的一个错误,所以我只需要更正其源代码中的一行,它就可以工作了。【参考方案2】:看起来,从 iOS13 和 XCode 11 开始,Apple 将属性字符串的系统字体更改为这种新的、衬线、类似 Times 的字体 :(
(See also here)
我不确定这是故意的还是 iOS 中的错误。我做了一个丑陋的解决方法来处理这个问题:
UIFont *font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
if (@available(iOS 13, *))
font = [UIFont fontWithName:@"SFUI-Regular" size:[UIFont systemFontSize]];
【讨论】:
谢谢!我不知道发生了什么。以上是关于Xcode 11 Beta 中字体样式发生变化的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在数组大小更改后刷新 ForEach 显示元素的数量(SwiftUI,Xcode 11 Beta 5)
我现有的 TableViewController 在 Xcode 11 beta1 上崩溃