Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.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 如何基于内容使视图居中调整大小_Ios_Xcode_Constraints - Fatal编程技术网

Ios 如何基于内容使视图居中调整大小

Ios 如何基于内容使视图居中调整大小,ios,xcode,constraints,Ios,Xcode,Constraints,我想在其中创建一个视图。有3个标签具有动态高度。 我希望标签显示在文本的中心是小的,当文本对于最后一个标签(描述)具有更大的优先级时,标签会变得更大 我得到的 预期结果 1-小说明 2-大描述 此外,如果描述很长,标签的高度不应超过图像的边界,顶部和底部约束应 对于此问题的任何修复都可以使用堆栈简单地管理此问题。 如果你看到图像,你可以看到有三个堆栈。如果您正确地配置它们,您可以简单地实现您想要的行为。 在ContainerStack from image中,您需要将对齐设置为填充,并将

我想在其中创建一个视图。有3个标签具有动态高度。 我希望标签显示在文本的中心是小的,当文本对于最后一个标签(描述)具有更大的优先级时,标签会变得更大

我得到的

预期结果

1-小说明

2-大描述

此外,如果描述很长,标签的高度不应超过图像的边界,顶部和底部约束应


对于此问题的任何修复

都可以使用堆栈简单地管理此问题。 如果你看到图像,你可以看到有三个堆栈。如果您正确地配置它们,您可以简单地实现您想要的行为。

在ContainerStack from image中,您需要将对齐设置为填充,并将分布设置为均匀填充(如果希望以不同方式对齐文本部分和图像部分,您可以更改此设置),还可以根据需要指定间距

在LabelHorizondalContainer堆栈中,需要将其设置为对齐居中,并将分布设置为填充

在LabelVerticalContainer堆栈中,您需要将“对齐”和“分布”设置为“填充”

据我所知,这应该能奏效


顺便说一句,您需要相应地设置标签的垂直抗压强度,以确保当您有更大的描述时,哪个标签应该是集群的,这将填充视图

您可以简单地使用堆栈来管理它。 如果你看到图像,你可以看到有三个堆栈。如果您正确地配置它们,您可以简单地实现您想要的行为。

在ContainerStack from image中,您需要将对齐设置为填充,并将分布设置为均匀填充(如果希望以不同方式对齐文本部分和图像部分,您可以更改此设置),还可以根据需要指定间距

在LabelHorizondalContainer堆栈中,需要将其设置为对齐居中,并将分布设置为填充

在LabelVerticalContainer堆栈中,您需要将“对齐”和“分布”设置为“填充”

据我所知,这应该能奏效


顺便说一句,您需要相应地设置标签的垂直抗压强度,以确保当您有更大的描述时,哪个标签应该是集群的,这将填充视图

您可以根据需要使用
UIStackView

只需按照下面列出的步骤获得此结果:

  • 添加
    UIImageView
    和配置约束:前导、顶部、底部和宽度(常量或比例)

  • 添加
    ui标签
    (不要忘记将行数设置为0)

  • 选择标签并将其添加到堆栈视图。在
    对齐
    分布
    字段中设置
    填充
    值。
  • 前导
    尾随
    约束添加到堆栈视图
  • 将垂直居中约束添加到堆栈视图
  • 编辑原始问题后更新-“如果描述很长,标签高度不应超过图像边界,顶部和底部约束应”

  • 选择“堆栈视图”和“图像视图”,然后添加顶部和底部边缘约束。
  • 选择刚刚添加的顶部边缘约束,并将
    属性检查器中的
    关系更改为
    大于或等于
    。在此之后,选择底部边缘约束并将
    关系更改为
    小于或等于

  • 选择前两个标签,并在
    Size Inspector
    Vertical
    Content Compression Resistance Priority
    中将其设置为751。

    就这些


  • 您可以根据需要使用
    UIStackView

    只需按照下面列出的步骤获得此结果:

  • 添加
    UIImageView
    和配置约束:前导、顶部、底部和宽度(常量或比例)

  • 添加
    ui标签
    (不要忘记将行数设置为0)

  • 选择标签并将其添加到堆栈视图。在
    对齐
    分布
    字段中设置
    填充
    值。
  • 前导
    尾随
    约束添加到堆栈视图
  • 将垂直居中约束添加到堆栈视图
  • 编辑原始问题后更新-“如果描述很长,标签高度不应超过图像边界,顶部和底部约束应”

  • 选择“堆栈视图”和“图像视图”,然后添加顶部和底部边缘约束。
  • 选择刚刚添加的顶部边缘约束,并将
    属性检查器中的
    关系更改为
    大于或等于
    。在此之后,选择底部边缘约束并将
    关系更改为
    小于或等于

  • 选择前两个标签,并在
    Size Inspector
    Vertical
    Content Compression Resistance Priority
    中将其设置为751。

    就这些


  • 谢谢你的回答,非常有帮助,但我忘了提到描述的底部不应高于图像@,顶部标签的顶部应位于顶部的最大值处image@JhonnyTawk哦好的-给我几分钟时间编辑我的答案谢谢你的回答这非常有帮助,现在运行良好谢谢你的回答非常有帮助,但我忘了提到描述的底部不应高于图像@,顶部标签的顶部应最大位于图像顶部image@JhonnyTawk哦好的,给我几分钟来编辑我的答案谢谢你的回答,这非常有帮助,现在效果很好