Problem with stackView arranged subview distribution size

Hello,

For sake of brevity I am trying to do the following but in code.

Here is what I managed to do in playgrounds:

class ViewController: UIViewController {

var buttonLayout: [[String]] {
    
    return [
        
        ["-","7","8","9","-"],
        ["-","4","5","6","+"],
        ["-","1","2","3","*"],
        ["-",".","0","=","+"]
    ]
}

var masterStackView: StackView = {
    
    let stackView = StackView(frame: .zero)
    stackView.axis = .vertical
    //stackView.alignment = .fill
    //stackView.distribution = .fill
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.backgroundColor = .red
   
    return stackView
}()

let displayLabel: UILabel = {
    
    let display = UILabel()
    display.text = "0"
    display.font = UIFont.boldSystemFont(ofSize: 30)
    display.textAlignment = .right
    display.translatesAutoresizingMaskIntoConstraints = false
    display.backgroundColor = .gray
    
    return display
}()

var buttonStackView: StackView = {
    
    let stackView = StackView(frame: .zero)
    stackView.axis = .vertical
    stackView.distribution = .fillEqually
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.backgroundColor = .green
    
    return stackView
}()

var horizontalStackView: StackView {
    
    let stackView = StackView(frame: .zero)
    stackView.axis = .horizontal
    stackView.distribution = .fillEqually
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.backgroundColor = getRandomColor()
    
    return stackView
}

func setStackView() {
    
    for row in buttonLayout {
        
        let stackView = horizontalStackView
        buttonStackView.addArrangedSubview(stackView)
        
        for label in row {
            
            stackView.addArrangedSubview(createButton(withTitle: label))
            
        }
    }
}

func createButton(withTitle: String) -> UIButton {
    
    let myButton = UIButton(type: .system)
    myButton.setTitle(withTitle, for: .normal)
    myButton.setTitleColor(.white, for: .normal)
    myButton.layer.borderColor = UIColor.cyan.cgColor
    myButton.layer.borderWidth = 1
    myButton.titleLabel?.textColor = .blue
    myButton.translatesAutoresizingMaskIntoConstraints = false
    
    return myButton
}


override func viewDidLoad() {
    
    super.viewDidLoad()

    view.addSubview(masterStackView)
    setUpContriants()
    
    setStackView()
    
    masterStackView.addArrangedSubview(displayLabel)
    masterStackView.addArrangedSubview(buttonStackView)        

    view.backgroundColor = .white

}

func setUpContriants() {
    
    view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": masterStackView]))
    
    view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": masterStackView]))

    
}

}

My problem is with the display labels size. The labels size takes up most of the screen while the buttons are squeezed into the bottom portion of the screen

In the storyboard picture above the display label size is based on the size of the labels font.