试图获取两个视图之一的frame.height,这些视图平均填充到stackview内部

问题描述 投票:0回答:1

我在垂直的stackview中有2个视图(bothalf和tophalf)。它们的约束取决于该stackview.botHalfView内部有一个水平stackview(containerStackView3)。它的约束条件领导,拖尾和高度取决于botHalfView。在调试窗口中,我还可以在控制台上看到bothalfview.frame.height = 0的高度,该高度已添加为horizo​​ntalstackview的约束。因此,Bothalfview内部的horizo​​ntalstackview不显示任何尺寸。我应该为哪个约束分配horizo​​ntalstackview的高度?或对此有任何其他解决方案?

       let containerStackView3 = UIStackView()
        containerStackView3.translatesAutoresizingMaskIntoConstraints = false
        containerStackView3.axis = .vertical
        containerStackView3.distribution = .fillEqually
        containerStackView3.spacing = 1
 //adding views
        containerStackView1.addArrangedSubview(botHalfView2)
        botHalfView2.addSubview(containerStackView3)

//constraints bothalfview 
        botHalfView2.bottomAnchor.constraint(equalTo: 
        containerStackView1.bottomAnchor, constant: 0).isActive = true
        botHalfView2.leadingAnchor.constraint(equalTo: 
        containerStackView1.leadingAnchor, constant: 0).isActive = true
        botHalfView2.trailingAnchor.constraint(equalTo: 
        containerStackView1.trailingAnchor, constant: 0).isActive = true

// Constraints of the stack view inside the bothalfview
        containerStackView3.leadingAnchor.constraint(equalTo: 
        botHalfView2.leadingAnchor, constant: 0).isActive = true
        containerStackView3.trailingAnchor.constraint(equalTo: 
        botHalfView2.trailingAnchor, constant: 0).isActive = true
        containerStackView3.bottomAnchor.constraint(equalTo: 
        botHalfView2.bottomAnchor, constant: 0).isActive = true

  containerStackView3.heightAnchor.constraint(equalToConstant:botHalfView2.frame.height).isActive = true
swift autolayout uistackview
1个回答
0
投票

如果您需要与机器人一半高度相同的容器,请执行此操作//双向视图中的堆栈视图约束

    containerStackView3.leadingAnchor.constraint(equalTo: 
    botHalfView2.leadingAnchor, constant: 0).isActive = true
    containerStackView3.trailingAnchor.constraint(equalTo: 
    botHalfView2.trailingAnchor, constant: 0).isActive = true
    containerStackView3.bottomAnchor.constraint(equalTo: 
    botHalfView2.bottomAnchor, constant: 0).isActive = true
    containerStackView3.topAnchor(equalTo: 
    botHalfView2.topAnchor, constant: 0).isActive = true
© www.soinside.com 2019 - 2024. All rights reserved.