尽管UIStackView里面有内容,但它的UILabel高度为0

时间:2018-07-25 09:04:37

标签: swift uiview autolayout

我有UIView个子类UIViewA。它包含另一个视图UIViewB,该视图是使用依赖注入从代码中的某处设置的。

class UIViewA {
    var viewB: UIViewB { // injected
        substitudeView()
        attachWithConstraints()
    }
    func chargeWithContent(_ some: Some) {
        viewB.chargeWithContent(some)
    }
}

class UIViewB {
    func chargeWithContent(_ some: Some) {
        label1.text = some.text1
        label2.text = some.text2
    }
}

UIViewB的{​​{1}}带2个标签。

在这种情况下,一切正常。

但是,如果我想根据Some的类型有不同的看法,那么我会遇到一些问题。因此,使用

UIStackView

第一个标签的高度为0,即使它具有要显示的内容。有什么主意吗?

class UIViewA { var selectedView: UIViewBOrCProtocol! { substitudeView() attachWithConstraints() } var viewB: UIViewB // injected var viewC: UIViewC // injected func chargeWithContent(_ some: Some) { if sekectedView == nil { if some.isB { selectedView = viewB } else { selectedView = viewC } } viewB.chargeWithContent(some) } } class UIViewB { func chargeWithContent(_ some: Some) { label1.text = some.text1 label2.text = some.text2 } } 看起来像这样:

attachWithConstraints

它基本上将所有方面附加到superview。

第一个实现效果很好,所以我认为问题不存在约束

0 个答案:

没有答案