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

自动布局:根据新设置的约束调整视图高度

韩喜
2023-03-14

我刚开始更彻底地使用AutoLayout,遇到了一个大问题:

我有一个视图,其中一些子视图附着在其顶部,一些子视图附着在其底部,因此当视图的高度发生变化时,子视图会相应地移动。根据用户的操作,子视图的高度可以更改(=其高度约束值更改),这可能会导致它们不再适合其父视图。

如何确定一组新的约束是否需要更改父视图的高度以适应其所有子视图?最好在我显示具有新约束的所有字段之前-我希望视图的高度同时改变。原因:我对约束值的变化进行动画处理,同时我想对视图高度的变化进行动画处理。已经通过调用layoutIfNeed执行了新的约束,因此不可能。

共有1个答案

逄俊贤
2023-03-14

这个问题还不够清楚,但您能否只获得每个子视图的高度,并将摘要值与父视图的高度进行比较?

 类似资料:
  • 许多有关自动布局约束动画的教程建议更新约束的常量属性,然后在动画块中调用。 我的处境有点棘手。我有一个包含3个子视图的视图。此超级视图的高度不是固定的-它是按其子视图的高度之和计算的。在某些情况下,我要求这3个子视图中的一个子视图切换其高度(它在0和30之间变化,即我希望平滑地隐藏和显示它)。代码类似于此: 不幸的是,这并不像我预期的那样有效。我可以看到子视图高度的平滑变化,但在为子视图高度约束设

  • 我有一组AL约束来定位一个子vc,它有两个位置,展开和折叠。 我发现,当我添加折叠约束时,带有常量的上锚到下锚约束,当第一次创建vc时,当我激活它时,似乎有额外的间距。似乎是因为当时没有实际的高度。 当我在viewDidLayoutSubviews中添加约束时,额外的间距消失了,约束行为正常。除了现在在动画中的约束之间切换时,切换到展开约束和约束打断时,无法停用折叠的约束。可能是因为在整个过渡动画

  • 我在学习教程中的动画自动布局 http://weblog.invasivecode.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was 一切都很顺利。 当我尝试在我的应用程序中使用这个概念,尝试从下到上设置设置屏幕(UIView)的动画时,当设置屏幕只是一个空的UIView时,效果非常好, 但如果我将UILabel

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

  • 我正在尝试创建一个 UITableViewCell,其中包含 3 个子视图 - 一个按钮和两个标签。表视图单元格应如下所示: 目前,我有一个按钮1,它的前导、顶部、宽度和高度约束将其固定在左上角。标签1有一个从按钮、顶部、左侧和底部约束到内容视图的前导约束。标签1的行数设置为0,并且可以动态扩展,到目前为止,这是可行的。 我很难弄清楚如何为标签2设置约束,以便它始终低于标签1并且可以扩展。 我尝试

  • 我以前从未使用过自动布局约束。我有一个新的小应用程序,我正在开发,并注意到NIB的视图默认为自动布局。所以,我想我会借此机会使用它,并尝试弄清楚苹果公司在这方面的进展。 第一个挑战: 我需要调整MKMapView的大小,并将其设置为新位置的动画。如果我按照我习惯的方式来做: ...然后,每当更新同级视图时,MKMapView将“捕捉”回其原始高度(在我的例子中,UISegmentedControl