UITextField:adjustsFontSizeToFitWidth 行为/问题

UITextField: adjustsFontSizeToFitWidth behaviour/ issue

我对 textField 的 adjustsFontSizeToFitWidth 的使用有疑问。我有一个字体大小为 50 且最大宽度为 300 的文本字段(这是一个小于或等于约束)。 TextField 使用自动布局垂直和水平居中放置。现在,当我 运行 应用程序时,文本本身会从头开始缩小。我知道这可能是因为系统认为 Texfield 的边界不够……但我将控制权交给自动布局来解决这个问题,我认为它应该可以工作。下面是快照……你可以看到大 placeholder,然后文字突然变小了……有什么想法吗?我做错了什么,我试图避免手动计算宽度..

SourceCode Sample

将leading/trailing space 设置为文本字段,例如距左侧安全区域15 pt 和距按钮15 pt,以便它可以自动增加字体大小。由于宽度不够,现在它将字体缩小到最小 17(在情节提要中设置)。

好的!!最后我找到了一种方法,想法是检查宽度是否大于定义的宽度限制...当宽度更大时我设置 adjustsFontSizeToFitWidth = true 否则设置为 false ... 出于某种原因当我清除文本时,解决方案不起作用......然后我尝试了编程方法并开始工作......不知道有什么区别......无论如何我更新了源......如果有更好的解决方案让我知道。

    @IBAction func textChanged(_ txtField: UITextField) {
    if txtField.frame.width >= (view.frame.width * widthMultiplier).rounded() {
        txtField.adjustsFontSizeToFitWidth = true
    } else {
        txtField.adjustsFontSizeToFitWidth = false
    }
}