我有一个stackView,其中包含一些UItextfields和一个按钮。 我已经在ViewController viewDidLoad中限制了它,如下所示:
let stackView = UIStackView()
stackView.axis = .vertical
stackView.spacing = 40
stackView.distribution = .fillEqually
stackView.alignment = .fill
stackView.addArrangedSubview(justAskYouSomeInfosLabel)
stackView.addArrangedSubview(emailTextField)
stackView.addArrangedSubview(passwordTextField)
stackView.addArrangedSubview(againPasswordTextField)
stackView.addArrangedSubview(registrationButton)
//autolayout the stackview
view.addSubview(stackView)
stackView.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: nil, bottom: nil, trailing: nil, padding: .init(top: 80, left: 0, bottom: 0, right: 0))
stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
stackView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.8).isActive = true
现在,我想减小stackView底部按钮的宽度。
我尝试过:
registrationButton.widthAnchor.constraint(equalToConstant: 80).isActive = true
如其他stackOverflow问题上所建议的那样,但它不起作用,并且在控制台上收到此错误:
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
如何以编程方式减小按钮的宽度?
答案 0 :(得分:1)
从stackView.alignment = .fill
行开始,您同意UIStackView的子视图的宽度与其父视图的宽度相同
将其更改为stackView.alignment = .center
或stackView.alignment = .leading
,以便您可以将按钮的宽度设置为其父按钮的宽度。