为啥从 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 的默认字体太小?的主要内容,如果未能解决你的问题,请参考以下文章

当点击 UITextField 时,加载 nib 文件以充当自定义键盘

在这个项目中,为啥我无法访问从 nib 加载的视图属性?

为啥 iOS 不自动旋转从 Nib 加载的视图在被 didReceiveMemoryWarning 释放后?

可插拔自定义视图 Nibs (Nib-in-a-Nib):内存泄漏 - 为啥?

Nib 文件在加载时忽略状态栏。为啥?

为啥这段代码不能加载我的 NIB/XIB