【问题标题】:How to set the width of a button in a stack view如何在堆栈视图中设置按钮的宽度
【发布时间】:2020-11-05 11:48:04
【问题描述】:

大家好,我正在尝试使用 NSLayoutConstraints 以编程方式设置按钮的宽度。

这是我的按钮:

private let testBtn: UIButton = {
    let button = UIButton(type: .system)
    button.setTitle("Test", for: .normal)
    button.translatesAutoresizingMaskIntoConstraints = false
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 28)
    button.setTitleColor(.white, for: .normal)
    button.backgroundColor = .red

    return button
}() 

这里是我设置堆栈视图及其约束的地方:

fileprivate func setupButton() {
        let ButtonStackView = UIStackView(arrangedSubviews: [ViewBtn])
        ButtonStackView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(ButtonStackView)
        
        NSLayoutConstraint.activate([
            ButtonStackView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -100),
            ButtonStackView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
            ButtonStackView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
            ButtonStackView.heightAnchor.constraint(equalToConstant: 50)
        ])
    }

如何调整按钮的宽度并将其设置为圆形按钮?

谢谢!

【问题讨论】:

    标签: ios swift xcode uibutton uistackview


    【解决方案1】:

    以下是如何为 testButton 添加宽度限制

     testBtn.widthAnchor.constraint(equalToConstant: 100).isActive = true
    

    你使用的圆角

    testBtn.layer.cornerRadius = testBtn.bounds.maxY/2
    

    注意:viewDidLayoutSubviews() 中的圆角

    【讨论】:

    • 再次感谢您的帮助!当我运行它时,我无法同时满足约束。这是因为页面上的其他限制吗?
    • 是的......这个堆栈除了这个按钮还有多少视图?
    • 不要在堆栈视图中添加尾随或前导锚......你可以有前导......或尾随......因为堆栈视图宽度将由按钮宽度决定
    • 啊完美!完美地设置了宽度!最后一个问题,我现在如何使按钮居中?
    • 您需要将堆栈视图居中而不是按钮先生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2016-03-07
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多