【发布时间】:2018-02-11 17:42:22
【问题描述】:
我正在用代码构建我的屏幕,其中包含一个包含我的文本字段的 stackView。这个 stackView 在 iPhone 8/8Plus/X 设备上看起来很棒,但在 SE 屏幕上太大了。我意识到我需要根据设备大小按比例调整 stackView 的大小,但不确定如何以编程方式进行。我看过的所有教程都展示了如何在 IB 中进行操作。
这是我正在使用的代码:
let textFieldStackView = UIStackView(arrangedSubviews: [nameTextField, emailTextField, passwordTextField])
textFieldStackView.translatesAutoresizingMaskIntoConstraints = false
textFieldStackView.distribution = .fillEqually
textFieldStackView.axis = .vertical
textFieldStackView.spacing = 10
view.addSubview(textFieldStackView)
textFieldStackView.topAnchor.constraint(equalTo: logoImageView.bottomAnchor, constant: 100).isActive = true
textFieldStackView.heightAnchor.constraint(equalToConstant: 150).isActive = true
textFieldStackView.widthAnchor.constraint(equalToConstant: 350).isActive = true
textFieldStackView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
这不仅仅是宽度,还有我需要相应增长的高度。我将如何在代码中执行此操作?
【问题讨论】:
-
按比例调整大小是什么意思?你能描述一下吗?
-
@MilanNosáľ 我希望高度和宽度增加相同的数量,具体取决于它们所在的屏幕尺寸。
-
你太模糊了..你希望它是屏幕高度的 1/2 吗?你想让它填满屏幕的其余部分吗?
-
如果您希望堆栈视图的大小与主视图的大小相关,为什么要使用
equalToConstant来约束?鉴于您声称要做什么,您的代码毫无意义。 -
@matt 这就是我问一个问题的原因。正如我所指出的,我不确定如何做到这一点,因为展示如何做到这一点的教程使用的是 IB,而不是代码。
标签: ios autolayout uistackview