自动调整大小时 UITextField 字体粗细变化
Posted
技术标签:
【中文标题】自动调整大小时 UITextField 字体粗细变化【英文标题】:UITextField Font Weight Changing when Auto-Resizing 【发布时间】:2016-02-18 02:48:12 【问题描述】:我在情节提要中有一个 UITextField,系统 Ultralight 字体大小为 70。标签具有固定宽度,如果大小 70 超出该宽度,则设置为调整为较小的字体大小(“调整为适合”已签入属性检查器)。这可行,但自动调整大小时字体会更改为 System Regular。我已经通过打印声明验证了这一点:print(myLabel.font)
yield
Optional(<UICTFont: 0x7fa7cac3faf0> font-family: ".SFUIDisplay-Ultralight"; font-weight: normal; font-style: normal; font-size: 70.00pt)
Optional(<UICTFont: 0x7fa7cac81ed0> font-family: ".SFUIDisplay-Regular"; font-weight: normal; font-style: normal; font-size: 64.00pt)
此时标签调整大小。注意从“.SFUIDisplay-Ultralight”到“.SFUIDisplay-Regular”的变化。
一旦发生这种情况,更改将是永久性的。标签永远不会回到 Ultralight,即使输入的数字较小。
我发现 UITextFields 上的其他一些 SO 帖子在编辑时表现异常,但不是这个特定问题。任何关于为什么会发生这种情况或如何解决它的帮助将不胜感激!
【问题讨论】:
抱歉 - 你能告诉我如何重现这种行为吗? @matt,1. 将 UITextField 添加到情节提要。 2. 将字体设置为 System Ultralight,大小 70。 3. 设置最小字体大小。 4.添加宽度约束。 5. 运行应用程序,然后输入超出容量的字符。 是的,没问题,我能做到。 【参考方案1】:根据 Apple 的说法,如果我们低于 20 磅,系统字体 Ultralight 重量会自动切换为更重的重量。如果这发生在较大的点大小上,则可能是一个错误,您应该报告它。同时,坚持Light,这是不会自动切换的最轻的重量。
【讨论】:
谢谢马特。不幸的是,切换到 Light 并不能解决问题。调整大小时它仍会变为常规,即使从 70pt 变为 64pt。 这不是我看到的,但没关系。也许是我的眼睛欺骗了我。无论如何,提交错误报告。 嗯,即使是 Light,您也可能是对的。啊。归档! 好的,谢谢马特。很高兴听到你也能复制它。我已经提交了雷达。 有趣!您能否指出说明这一点的 Apple 文档链接?谢谢以上是关于自动调整大小时 UITextField 字体粗细变化的主要内容,如果未能解决你的问题,请参考以下文章
iPhone——获取 UITextField 调整后的字体大小
iPad - 带有 UITextField 的 UITableView - 方向改变时自动调整大小问题