gpt4 book ai didi

ios - 如何使用自动布局将 UITextField 重新定位到特定位置

转载 作者:行者123 更新时间:2023-11-30 11:46:11 25 4
gpt4 key购买 nike

我正在为 IOS 创建 swift 4.0 的 View 。我有 5 个 UITextField 就像我的例子一样。我想更改“tf5”的位置并将其放置在“tf2”和“tf3”之间,但我无法在自动布局上使用边距顶部。我尝试像其他解决方案一样定义约束,但到目前为止无法解决这个问题。我怎样才能做到这一点?感谢您的帮助。

enter image description here

最佳答案

由于您希望以编程方式获得它,因此这里有一个带有 UIStackView 的版本:

let tf1 = UITextField()
let tf2 = UITextField()
let tf3 = UITextField()
let tf4 = UITextField()
let tf5 = UITextField()

let stackView = UIStackView()
stackView.axis = .vertical
stackView.distribution = .fill
stackView.alignment = .fill
stackView.spacing = 8

// this arranges them from 1 to 5
stackView.addArrangedSubview(tf1)
stackView.addArrangedSubview(tf2)
stackView.addArrangedSubview(tf3)
stackView.addArrangedSubview(tf4)
stackView.addArrangedSubview(tf5)

// now you just need to use autolayout to position the stackview properly, and it will take
// care of textFields for you

// now if you want to place tf5 before tf3 later
let indexOfTF3 = stackView.arrangedSubviews.index(of: tf3)!
stackView.insertArrangedSubview(tf5, at: indexOfTF3)
// or you can use number 2 instead of indexOfTF3, since in this case we know that it is there

旁注:您可以使用相同的 stackView 来定位 tw1 UITextView,但如果我没记错的话,您必须添加一个约束来确定其高度(因为它没有固有大小),以便 stackView.fill 分布正常工作。

关于ios - 如何使用自动布局将 UITextField 重新定位到特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48802289/

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