gpt4 book ai didi

ios - 添加 View 后如何调整uiscrollview(自动布局)

转载 作者:行者123 更新时间:2023-11-29 12:35:04 25 4
gpt4 key购买 nike

在主UIView中有一个UIScrollView。我在 scrollview 中有容器 UIView 并且它的边缘被固定到 scrollview。并且此容器 View 具有恒定的 widthheight 约束。因为没有它们, ScrollView 将无法工作。

当我在容器 View 中垂直添加大量 subview 时, subview 超出了容器 View 的底部边框。它不可滚动,因为容器具有相同的预定义高度。如何使容器 View 可调,以便它可以匹配 subview 高度,使其可滚动。

还要考虑到我正在使用 autolayout

最佳答案

您实际上需要做的是更新高度约束,对吗?

我会将内部 View 的高度约束链接为 ViewController 中的 IBOutlet:

@property (nonatomic, weak)     IBOutlet    NSLayoutConstraint *contentViewHeight;
  • 通常拖放到文件所有者

然后,当您在其中添加 subview 时,您需要通过调用该方法来更新约束的常量:

- (void)updateContentViewHeight:(CGFloat)height
{
self.contentViewHeight.constant = height;
[self.yourContentView layoutIfNeeded];
}

如果您可以跟踪整个 subview 堆栈的高度,那就太好了!你只需要将它传递给那个方法。

如果没有,它可能会更棘手一些......您可能需要删除高度约束,将您的 subview 添加到彼此下方(只要它们的高度是固定的)而不要忘记“固定”底部边框最后一个 subview 到“内部 View ”的底部边框。换句话说,内部 View 的高度不是固定的,而是通过其“高度固定”内容的总和扩展的。这样之后:

[self.yourContentView layoutIfNeeded]; 

它的“.frame”中应该有它的最终高度

然后您应该能够更新高度约束或设置 ScrollView 的内容大小,选择最适合您的。

关于ios - 添加 View 后如何调整uiscrollview(自动布局),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26609457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com