如何实现动态视图

时间:2017-03-18 05:36:19

标签: ios swift3

假设我有3个视图,每个视图都有一个标签。现在我想要的是,基于标签内容,对于按钮单击的不同实例,它具有不同的文本大小和长度,我希望我的视图适合标签大小。

如果视图是红色,红色应该根据标签高度和宽度包含标签文本,每次都会更改。

class VerticalFitLayout:VerticalLayout {

override init(width: CGFloat) {
    super.init(width: width)
}

required init(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

override func layoutSubviews() {

    var height: CGFloat = 0
    var zeroHeightView: UIView?

    for i in 0..<subviews.count {
        var view = subviews[i] as UIView
        height += yOffsets[i]
        if view.frame.height == 0 {
            zeroHeightView = view
        } else {
            height += view.frame.height
        }
    }

    if height < superview!.frame.height && zeroHeightView != nil {
        zeroHeightView!.frame.size.height = superview!.frame.height - height
    }

    super.layoutSubviews()

}

}

我正朝着正确的方向前进吗?

查看此图片http://imageresize.org/Output/6e2d4598-355c-4c0c-ae9e-9ce0a4fad574.png 但我想要的是一个视图,它将根据文本进行更改。标签接收来自数组或Web服务的输入,无论是什么..

1 个答案:

答案 0 :(得分:0)

使用自动布局

像这样,UILabel行数设置为0。

enter image description here

enter image description here