【问题标题】:How to set UITextField width constraint to have room for a certain string如何设置 UITextField 宽度约束为某个字符串留出空间
【发布时间】:2018-08-03 16:25:58
【问题描述】:

我有一个UITextField,它将显示 0 到 1.0 之间的浮点值,小数点后有 3 位数字。因此,它将显示的最宽文本类似于“0.000”。我想设置自动布局宽度约束,以便文本字段始终有足够的空间来显示此值。

下面的代码很接近,但是工作。

let biggestString = "0.000"
let textAttrs = [NSAttributedStringKey.font: myField.font]
let size = (biggestString as NSString).size(withAttributes: textAttrs)
myField.widthAnchor.constraint(equalToConstant: size.width).isActive = true

它最终显示“1.0 ...”我猜这是因为UITextField 在文本周围有某种填充,所以我需要将宽度设置为字符串宽度+填充。但是,我没有看到可以从中读取此填充量的属性。有没有办法得到它?

【问题讨论】:

    标签: ios autolayout uitextfield


    【解决方案1】:

    尝试搜索“intrinsicContentSize”。根据文档,这是必须设置的内容以向自动布局指示内容的大小。

    还有一个更详细的讨论,如果布局设置不允许调整大小,这实际上是如何实现的,请在此处查看其他问题:

    How to increase width of textfield according to typed text?

    【讨论】:

      猜你喜欢
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 2016-06-24
      • 2020-08-03
      相关资源
      最近更新 更多