【问题标题】:Set view width size programmatically base on it's subview根据子视图以编程方式设置视图宽度大小
【发布时间】:2017-01-17 04:42:38
【问题描述】:

我有一个 customView 包含一些 subViews 像这样:

我已将 messageLabel 尾随约束设置为它的 superView = 4

我希望我的customView 宽度约束将基于messageLabel 自动设置。如果我这样创建 customView:

FlyingMessageDisplayView(frame: CGRect(x: UIScreen.main.bounds.width, y: 0, width: 100, height: 40))

如何设置它的宽度大小,因为 messageLabel 可以是长的或排序的。

【问题讨论】:

  • 您需要手动设置,首先找到带有文本的标签宽度并相应地设置视图大小,请参阅如何查找宽度stackoverflow.com/questions/1340667/…
  • 如果要自动调整大小,为什么要传递框架?

标签: ios swift


【解决方案1】:

我根据它的子标签设置我的customView 宽度大小,如下所示

customView.frame.size.width = customView.messageLabelWidth + 50 // 50 here is for imageView width and some spacing.

messageLabelWidth 在哪里FlyingMessageDisplayView

var messageLabelWidth: CGFloat {
    get {
        return messageLabel.intrinsicContentSize.width
    }
}

它会先根据文本长度计算标签的宽度,然后更新customView的宽度

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多