如何设置 UITextField 宽度约束为某个字符串留出空间
Posted
技术标签:
【中文标题】如何设置 UITextField 宽度约束为某个字符串留出空间【英文标题】:How to set UITextField width constraint to have room for a certain string 【发布时间】: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
在文本周围有某种填充,所以我需要将宽度设置为字符串宽度+填充。但是,我没有看到可以从中读取此填充量的属性。有没有办法得到它?
【问题讨论】:
【参考方案1】:尝试搜索“intrinsicContentSize”。根据文档,这是必须设置的内容以向自动布局指示内容的大小。
还有一个更详细的讨论,如果布局设置不允许调整大小,这实际上是如何实现的,请在此处查看其他问题:
How to increase width of textfield according to typed text?
【讨论】:
以上是关于如何设置 UITextField 宽度约束为某个字符串留出空间的主要内容,如果未能解决你的问题,请参考以下文章