繁体   English   中英

无法在 UIstackview 中居中元素?

[英]Not able to centre elements in UIstackview?

我正在做一个现场操场项目,我以编程方式创建了所有内容,但我无法将stackView中的按钮对齐到中心请帮助我这里是主操场的代码

import PlaygroundSupport
import UIKit
let vc = HomeViewController()
let navController = UINavigationController(rootViewController: vc)
navController.view.frame = CGRect(x: 0, y: 0, width: 600, height: 600)

PlaygroundPage.current.liveView = navController

这是我的 HomeVC 代码


import UIKit

public class HomeViewController:UIViewController{
    let stackView:UIStackView = {
       let st = UIStackView()
        st.axis = .horizontal
        st.alignment = .center
        st.distribution = .fillEqually
        st.backgroundColor = .cyan
        st.spacing = 10
        st.translatesAutoresizingMaskIntoConstraints = false
        
       return st
    }()
    let generateButton:UIButton = {
       let btn = UIButton()
        btn.setTitle("Generate Array", for: .normal)
        btn.backgroundColor = .yellow

        btn.translatesAutoresizingMaskIntoConstraints = false
        return btn
    }()
    let generateButton2:UIButton = {
       let btn = UIButton()
        btn.setTitle("Generate 2", for: .normal)
        btn.backgroundColor = .brown

        btn.translatesAutoresizingMaskIntoConstraints = false
        return btn
    }()
    
    public override   func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .systemPink
        view.addSubview(stackView)
        
        stackView.addArrangedSubview(generateButton)
        stackView.addArrangedSubview(generateButton2)

        
        stackView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        stackView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
        stackView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
        stackView.heightAnchor.constraint(equalToConstant: 120).isActive = true
    }
}


这是输出图片 我想要的只是将该堆栈视图中的按钮对齐到中心.....请帮助我

您的按钮正确居中, UINavigationBar给您一种错觉,它们不是。 要解决此问题,您有几个选择:


隐藏导航栏:

navigationController?.setNavigationBarHidden(true, animated: false)

移除导航栏半透明:

navigationController?.navigationBar.isTranslucent = false

edgesForExtendedLayout设置为空数组( Source ):

edgesForExtendedLayout = []

所有这些动作都可以在viewDidLoad() function 中执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM