子视图内的 UIScrollview 高度动态变化

Posted

技术标签:

【中文标题】子视图内的 UIScrollview 高度动态变化【英文标题】:UIScrollview inside subview Height Change Dynamicaly 【发布时间】:2016-09-16 10:52:45 【问题描述】:

我在使用自动布局时遇到了 UIScrollView 的问题。我有以下带有约束的视图层次结构。

ViewA(超级视图的前导、尾随、顶部和底部空间)。

-- ViewB(前导、尾随、顶部和底部空间到超级视图)。

--- UIScrollView(前导,尾随,顶部和底部空间到超级视图)。

ViewB 在 ViewA 上添加,我有一些文本字段、按钮和 UITableview,这些都放置在 UIScrollView 中。这是我的视图层次结构。

现在我想根据 tableview 的行数动态增加我的 Scrollview 高度。

为此,我正在使用以下代码,但它不起作用。任何人都可以建议我。

CGFloat height = MIN(self.view.bounds.size.height, placeTbl.contentSize.height);
self.Height_PlaceTbl.constant = height;  
[self.view layoutIfNeeded];

【问题讨论】:

在scrollview内容视图中设置所有垂直约束并创建tableview高度约束的出口。从行高和项目数以编程方式计算表视图的高度并将其设置为表视图高度约束,它应该更新滚动视图的内容高度。 【参考方案1】:

如果你想根据 tableview 的行数增加你的 ScrollView 高度,你可以试试这个 首先获取表格视图的行数,然后获取滚动视图的高度和宽度

let width = self.scrollview.layer.bounds.width
let height = self.scrollview.layer.bounds.height

在此之后,您可以像这样增加滚动视图的高度

self.scrollview.frame = CGRectMake(0, 0, width, height + numberofrows)

【讨论】:

以上是关于子视图内的 UIScrollview 高度动态变化的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 内的 UIStackView 与动态变化的项目

具有动态高度的tableview(每个部分)内的奇怪挑战UIScrollView

获取 UIScrollView 内的 UICollectionView 高度

使视图的高度随图像 Xcode swift 的高度动态变化

如何使用 autoLayouts 动态增加 UIScrollView 的高度

带有 AutoLayout 的 UIScrollView 内的 UITableView 动态内容大小高度