拥有一个垂直的Stackview并占据另一个Stackview内部的所有间距

时间:2018-12-21 14:29:26

标签: ios iphone swift uistackview

我正在尝试在表格单元中实现以下布局(它具有动态高度):

enter image description here

我得到的结果是第二个stackview不会拉伸以增加更多高度来填充多行标签。   result

  lazy var stackView: StackView = {
        let subviews: [UIView] = []
        let view = StackView(arrangedSubviews: subviews)
        view.axis = .horizontal
        view.alignment = .center
        self.containerView.addSubview(view)
        view.snp.makeConstraints({ (make) in
            make.edges.equalToSuperview().inset(inset)
        })
        return view
    }()

lazy var detailsStackView: StackView = {
    let subviews: [UIView] = []
    let view = StackView(arrangedSubviews: subviews)
    view.axis = .vertical
    stackView.alignment = .fill
    return view
}()

lazy var nameLabel: Label = {
    let view = Label(style: .styleBoldSize24)
    return view
}()

let detailsLabel: Label = {
    let label = Label(style: .styleRegular25)
    label.textAlignment = .left
    label.numberOfLines = 10
    label.text = "Where does it come from  Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of  anything embarrassing hidden in the mid words etc."
    return label
}()

lazy var avatarImageView: ImageView = {
    let view = ImageView(frame: CGRect())

    view.snp.makeConstraints({ (make) in
        make.width.height.equalTo(100)
    })
    return view
}()

override func setup() {
    super.setup()
    stackView.axis = .horizontal
    stackView.alignment = .top

    stackView.addArrangedSubview(avatarImageView)

    detailsStackView.spacing = self.inset
    detailsStackView.addArrangedSubview(nameLabel)
    detailsStackView.addArrangedSubview(detailsLabel)

    stackView.addArrangedSubview(avatarImageView)
    stackView.addArrangedSubview(detailsStackView)

    stackView.snp.remakeConstraints({ (make) in
        let inset = self.inset
        make.edges.equalToSuperview().inset(UIEdgeInsets(top: inset/2, left: inset, bottom: inset/2, right: inset))
    })}

0 个答案:

没有答案