为啥从 Nib 加载的 UITextField 的默认字体太小?

Posted

技术标签:

【中文标题】为啥从 Nib 加载的 UITextField 的默认字体太小?【英文标题】:Why is the default font size of UITextField loaded from Nib is too small?为什么从 Nib 加载的 UITextField 的默认字体太小? 【发布时间】:2020-03-09 13:17:48 【问题描述】:

我创建了一个 SwiftUI 项目来测试文本字段的字体大小(来自 SwiftUI、UITextField 和从 nib 加载的 UITextField)。我注意到,从 nib 加载的 UITextField 的默认字体大小不一致。

我已将代码上传到 github 链接。 https://github.com/felixmariaa/TestFontSize

这是显示 SwiftUI 中默认字体大小的屏幕截图 - 从 nib 加载的 TextField、UITextField 和 UITextField。

知道为什么从 nib 加载的 UITextField 的字体大小太小而且不一致吗?

【问题讨论】:

【参考方案1】:

在您当前运行的 ios 版本中(在 iPhone 11 Pro Max 上,我假设类似 iOS13)以编程方式创建的 UITextField 的默认字体是字体系列 SanFrancisco,大小为 17.0(您可以更改当您创建 UITextField 时以编程方式)。

同时基于 Interface Builder 的 UITextField 的默认字体,目前在 Xcode 中也是 SanFrancisco,但大小为 14.0(您可以从 Interface Builder > Attributes Inspector > Font 更改)。 p>

这就是我们目前使用的工具的行为方式。

您可以直接从有关排版的 Apple 文档中找到更多关于我在此处所述内容的信息:https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/typography/,您可以在其中阅读有关 iOS 和 Xcode 的默认字体的信息。

【讨论】:

以上是关于为啥从 Nib 加载的 UITextField 的默认字体太小?的主要内容,如果未能解决你的问题,请参考以下文章