当前位置: 首页 > 知识库问答 >
问题:

如何使用自动布局使超视图适合最大的固有大小子视图

司空鸿禧
2023-03-14

我有一列多个具有固有大小的动态子视图(图像、标签等)。如何让超级视图适应自动布局中的子视图?

如果子视图不是动态的,我会将最大的子视图的前沿/后沿约束到超级视图。像这样

我以为我能够与前缘对齐,然后将尾随约束设置为

注意事项:

  • 无法使用堆栈视图
  • 子视图具有动态宽度。所以在这个例子中,任何一行都可能是最宽的

共有2个答案

颜思淼
2023-03-14

好吧,我是这样让它工作的。不确定这是不是最好的方法。

  1. 将所有尾随约束设置为

甄鹏云
2023-03-14

遵循以下步骤,

  1. 将视图(例如视图a)添加到主视图
  2. 将所有三个标签(例如标签1、标签2、标签3)作为子视图添加到视图A中
  3. 将视图A固定到其所有四个侧面的超级视图。将顶部、底部、左侧和右侧的约束更改为大于等于(

您可以根据需要更改约束值。它会起作用的。您可以将抗压缩性优先级更改为“低”,只要标签可以收缩。

更新:对于下面提到的git链接

对于视图a,添加以下约束:

  • 视图 A 中心 X 和 Y 到超级视图中心 X 和 Y (=0 @1000)
  • ViewA 领先和超视领先 (

然后选择ViewA并设置更新帧,仍会显示红色标记,指示缺少约束。您仍然可以按照xcode的建议添加缺少的Constraint,但在构建时将其设置为移除。更新帧并运行。希望它能按照您的要求工作。

 类似资料:
  • 我必须在屏幕上显示一个带有多个“开关”控件iPhone弹出窗口。并分别通过打开/关闭操作在弹出窗口上添加和删除子视图。有关情况的更好说明,请参见下面 就像上面一样,当“添加邮件”开关为“ON”时,弹出视图必须再次增加高度,再添加两个子视图。最后看起来像这样, 就是这样。我正在通过我的应用程序使用自动布局,这是我感到困惑的地方。我知道我可以删除弹出窗口,每次都可以再删除一个新的弹出窗口,但这似乎是新

  • 我有一个具有两个垂直约束的视图,一个1:1的纵横比坐标系和一个中心对齐,因此它会根据屏幕的高度自动调整大小。现在,这个视图以UIImageViews的形式填充了一系列较小的子视图。我希望这些图像视图能够自动调整与超级视图成比例的大小,但我不知道如何做到这一点。我在superview中尝试了无数种约束,但都以一团糟而告终。有什么想法吗?

  • 我试图在代码中生成一个视图。这是我的视图对象的层次结构 UIScrollView UIView UIButton 滚动视图应该与窗口大小相同。按钮应该尽可能大。我使用iOS自动布局,所以我所有对象的约束字符串如下所示 我还为每个对象将translatesautorexingmaskintoconstraints设置为NO。 问题是按钮只获得默认的按钮大小。其父视图对象(UIView)仅获取其子视图

  • 我有一个自定义视图CustomLayout(蓝色,自定义UIView),该视图包含3个子视图,通过使用约束(布局锚定)垂直对齐,每个视图按照以下顺序对齐: 1视图:幻灯片(红色,自定义UIView) 我想,当我单击按钮(黄色)时,如果使用动画打开,SlideLayout(红色)的高度大小会增加,如果关闭,则会减少。和其他视图必须在动画期间更改位置,如果SlideLayout增加/减少,则父视图(C

  • 我有两个视图,我试图用自动布局调整大小/重新定位。 我设置了以下约束: 红色视图: 超级视图的顶部空间:0 落后和领先空间到超级视图:0 高度等于:100 蓝色视图: 顶部空间到红色视图:0 落后和领先空间到超级视图:0 高度等于:100 两个视图都是的子视图。蓝色视图有一个作为子视图(屏幕截图中未显示)。我想做的是更改红色视图的大小(带有动画),并让蓝色视图跟随该大小更改: 动画生效,红色视图的

  • 我遇到了自动布局的问题,似乎无法找到应该很容易实现的答案。 我有以下视图层次结构: 标签上的前导/尾随限制使它们在更薄的设备上更高(iPhone 4s vs iPhone 6)。 为了让UIScrollview正常工作,我需要在UIScrollView内部设置UIView的高度约束,以避免出现“不明确的高度”警告。 但在iPhone 4s上运行时,UIView不够高,无法容纳它的子视图。 到目前为