gpt4 book ai didi

ios - 获取文本字段上的 "bottom space to superview"约束

转载 作者:行者123 更新时间:2023-11-28 09:45:55 25 4
gpt4 key购买 nike

我有兴趣更新我的一个文本字段的约束,以便它在 View 中向上移动。这样做的原因是文本字段在编辑时不会被键盘隐藏。我找到了一个 SO 答案 here描述了如何更新文本字段上的自动布局约束,但它似乎已过时。更新文本字段约束的正确方法是什么?

我看到 UITextField 有一个返回约束列表的方法 constraints(),但我不确定如何识别正确的约束。

最佳答案

如果您必须盲目地确定底部约束,则需要比较每个约束的项目和属性。例如:

var textField: UITextField
var bottomConstraint: NSLayoutConstraint?
if let constraints = textField.constraints() as? [NSLayoutConstraint] {
for constraint in constraints {
if (constraint.firstItem == textField && constraint.firstAttribute == NSLayoutAttribute.Bottom)
|| (constraint.secondItem == textField && constraint.secondAttribute == NSLayoutAttribute.Bottom) {
bottomConstraint = constraint
break
}
}
}
bottomConstraint?.constant = 12345

通常,这种方法非常复杂,如果 View 的底部边缘可能存在其他约束,则会变得更加复杂:然后您必须展开比较以查看约束的两个项目并将关系值视为好吧。

最好的办法是将 IBOutlet 属性分配给您要修改的约束(或在约束生成后保留在变量中)。从那里,调整约束的 constant 属性并根据需要在您的父 View 上调用 layoutIfNeeded

您可能还会考虑一种更简单的方法,即在键盘出现时通过向上移动文本字段来转换文本字段,而不是修改布局。

关于ios - 获取文本字段上的 "bottom space to superview"约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32241377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com