首页 文章

如何调整superview的大小以符合子视图约束

提问于
浏览
0

我创建了一个自定义的UIView类,我创建了2个UILabel和1个UIImageView . 我为每个元素设置了约束 . 由于标签将保存动态文本,因此每个视图将具有不同的高度 . 如何调整视图的高度?约束(从上到下)是:

View Top > 16 > Label1 > 8 > ImageView > 8 > Label2 > 16 > View Bottom

问题是:我必须使用框架初始化UIView . 无论我尝试什么,视图总是使用初始化给出的帧的高度 . 我无法计算所有元素的高度并设置一个新的框架,因为标签有时是1行,有时是5行 .

This is how the view looks at runtime This is how its supposed to look like

提前致谢

1 回答

  • 0

    您必须使用框架初始化视图,但在初始化后将 translatesAutoresizingMaskIntoConstraints 设置为 false 时,传入的框架将变得无关紧要 . 因此,你可以在评论中推荐@BallpointBen并传入 .zero

    let newCustomView = CustomView(frame: .zero)
    newCustomView.translatesAutoresizingMaskIntoConstraints = false
    
    // auto layout constraints should now determine height
    

相关问题