ios - 如何设置 UITextField 宽度约束为某个字符串留出空间
问题描述
我有一个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 ...”我猜这是因为aUITextField
在文本周围有某种填充,所以我需要将宽度设置为字符串宽度+填充。但是,我没有看到可以从中读取此填充量的属性。有没有办法得到它?
解决方案
尝试搜索“intrinsicContentSize”。根据文档,这是必须设置的内容以向自动布局指示内容有多大。
如果布局设置不允许调整大小,还有一个更详细的讨论如何实际执行,请参阅此处的其他问题:
推荐阅读
- python - 在 Python 中将多个 CSV 文件合并到电子表格的单独选项卡中
- wordpress - WordPress 编辑器中的最少字符数
- php - 返回在哪个表中找到该项目
- php - 在 woocommerce 管理产品列表中为产品标签添加过滤器下拉列表
- git - TortoiseGit 到 Gitlab 存储库 HTTP 基本访问被拒绝
- react-native - 什么是类App中的道具
- python - 将大型 DataFrame 从 Pandas 加载到 Postgresql
- postgresql - 哪个查询更快?
- php - 如何检查 URL 是否包含数字范围并使用 PHP 重定向页面
- java - 将 Spring Boot 和 Angular 项目部署到 weblogic 12c