删除子视图后如何调整滚动视图的大小 快速?



>我在滚动视图中有子视图,从底部删除一些子视图后,有一个空白区域,滚动视图仍然保持高度,而不是调整大小。如何解决这个问题?

Scrollview的contentHeightcontentWidth是根据其子视图计算的(如果使用自动布局(。如果未使用自动布局,则需要设置其内容大小。

因此,每当您在滚动视图中添加或删除子视图时,您都需要注意其内容高度和内容宽度。

如果您使用的是自动布局,则需要向新添加的视图添加约束,以便滚动视图可以从中计算其内容高度。(在自动布局中,您无需明确设置内容高度以滚动视图(

如果使用框架基布局,则需要将 contentHeight 显式设置为滚动视图。在框架基础布局中,您需要注意滚动视图内容的大小。

为什么滚动视图中有空白?

从滚动视图中删除子视图时,需要调整其内容大小。这意味着它无法计算其内容大小。

你可以使用这一行

self.scrollView.contentSize = CGSize(width: self.view.frame.width, height: (YOURVIEW) - (THEREMOVEDVIEW))

我建议您在删除视图之前必须保存高度,以便以后进行调整。

UIScrollView不会自动知道其内容的高度。您必须为自己计算高度和宽度,如下所示:

scrollView.contentSize = CGSize(width: self.view.frame.size.width, height: 700)

注意:根据需要更改widthheight

您也可以尝试此操作:

let content: CGRect = scrollView.subviews.reduce(into: .zero) { rect, view in
rect = rect.union(view.frame)
}
scrollView.contentSize = content.size

最新更新