Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 具有动态高度多重UILabel的UIView_Ios_Objective C_Swift_Autolayout_Nslayoutconstraint - Fatal编程技术网

Ios 具有动态高度多重UILabel的UIView

Ios 具有动态高度多重UILabel的UIView,ios,objective-c,swift,autolayout,nslayoutconstraint,Ios,Objective C,Swift,Autolayout,Nslayoutconstraint,我正在制作一个自定义UIView,其中包含2个UILabel,每个UILabel都有动态高度。 我无法设置动态高度的约束。(我不熟悉自动布局和iOS的东西) 两个UILabel从顶部和底部相互连接,并与superview水平对齐。当我更改其中一个UILabel的内容时,UIView和UILabel不会根据需要调整大小 请建议。附加当前约束的屏幕截图 在interface builder中将两个标签的Lines属性设置为0 确保任何标签或uiview的高度都没有约束 确保uiview上没有强制其

我正在制作一个自定义UIView,其中包含2个UILabel,每个UILabel都有动态高度。 我无法设置动态高度的约束。(我不熟悉自动布局和iOS的东西)

两个UILabel从顶部和底部相互连接,并与superview水平对齐。当我更改其中一个UILabel的内容时,UIView和UILabel不会根据需要调整大小

请建议。附加当前约束的屏幕截图

  • 在interface builder中将两个标签的Lines属性设置为0
  • 确保任何标签或uiview的高度都没有约束
  • 确保uiview上没有强制其达到特定大小的约束,例如,如果uiview上有一个到superview顶部一定距离的约束,另一个到superview底部一定距离的约束,则该约束将不起作用
  • 尝试更改代码中标签的文本,高度应自动调整

  • 我根据你的要求为你做了一个演示。从下面的链接下载

    分步指南:-

    步骤1:-将约束设置为UIView

    1) 前导2)顶部3)尾随(从主视图)

    步骤2:-设置约束到标签1

    1) 前导2)顶部3)尾随(从其superview)

    步骤3:-设置约束到标签2

    1) 前导2)顶部3)尾随(从其superview)

    第4步:-最棘手的从UIView中为UILabel添加底部

    在Xcode 10及更高版本中-从“对齐约束”部分选择UIView并在其后添加标签“选择底部边缘约束”。

    步骤5:-(可选)设置约束到UIButton

    1) 前导2)底部3)尾随4)固定高度(从主视图)

    输出:-

    注意:-确保已在标签属性中将行数设置为0

    Edit1:-如果您想使用BottomConstraint(>=)增加大小,请检查下图


    我希望这些信息足以理解根据UILabel的高度自动调整UIView的大小和根据文本自动调整UILabel的大小。

    您对UIView的限制是什么?水平居中对齐、垂直居中对齐和宽度似乎是正确的。您可以发送您的xib文件吗?任何地方都没有添加高度约束,高度在更改标签文本后仍然没有调整try uilabel.sizetofit()。谢谢@RahulShirphuleWhat如果标签水平(并排)而不是垂直?任何标签的高度都会增加。我们如何告诉UIView根据这个增加的标签来增加高度?最好的答案,简单易懂!我在Stack Overflow上看到的最佳答案是的,如果UIView是在单独的XIB中定义的,那么这实际上不起作用。而且,如果进入标签的数据来自API。