使用Objective C增加单元格数量时如何动态增加UITableView高度?

Posted

技术标签:

【中文标题】使用Objective C增加单元格数量时如何动态增加UITableView高度?【英文标题】:How to increase UITableView Height Dynamically When number of cell is increased using Objective C? 【发布时间】:2017-11-29 11:32:38 【问题描述】:

我是 ios 新手。我已经实现了一个成功填充数组值的表格视图,但我对结果不满意。当我滚动我的表格视图时,顶部的值被隐藏了。

这是我的问题:根据单元格高度,表格视图高度也应该在UITableview 中动态增加。我怎样才能做到这一点?

【问题讨论】:

为什么要增加表格高度,它是一种滚动视图。您可以在其中渲染尽可能多的行,这将滚动到最后。如果你试图在一个屏幕上显示所有行,那么总行大小超过屏幕高度是很困难的。 从图片中,你在TableView中添加了Textfields和Done Button吗? 不,我在底部和视图控制器中创建了一个表格视图 当我滚动tableview时,顶部的值被隐藏了,解决方法是增加tableview的高度,但我不知道该怎么做?? 您可以从添加 TableView 的 Storyboard 或 Xib 中增加大小。如果该表格视图的高度从您的设备底部增加,那么该高度没有用,因为您的内容将呈现在 TableView 中并且单元格对象将隐藏。 【参考方案1】:

对于 UITableViewCell 动态高度,您可以使用以下 delegate 并返回 UITableViewAutomaticDimension

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath

    return 300; //give maximum heigh you want


-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    return UITableViewAutomaticDimension;

并根据内容大小增加表格视图高度,请使用以下代码行

YOUR_TABLE_VIEW_HEIGHT_CONSTRAINT.constant = [YOUR_TABLE_VIEW contentSize].height;

希望对你有帮助

【讨论】:

当我运行时出现此错误 *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“表视图行高不能为负 - 为索引路径提供高度( length = 2, path = 0 - 0) 为 -1.000000' 回答已更新检查一次并给出单元格中元素的一些顶部和底部约束不要给出 0 常量 @ShubamGupta 这对我也不起作用,我需要的是viewcontroller里面我的tableview高度是191,我的单元格高度是80,当单元格数增加时,我的tableview高度也会动态增加......这是什么我问?? 在重新加载表格视图后根据内容大小增加表格视图高度的答案更新获取内容高度并设置为约束@ShubamGupta

以上是关于使用Objective C增加单元格数量时如何动态增加UITableView高度?的主要内容,如果未能解决你的问题,请参考以下文章

使用Objective C增加Tableview高度时动态增加UIView高度?

Objective -C XCTest:如何在表格单元格中一直向上滑动

Objective C - iOS,在屏幕外的静态表格单元格中遍历 UILabel

UITableView:单击按钮时如何动态更改单元格高度?迅速

如何在Objective C中自动滚动自定义表格视图单元格

使用 Objective C 将集合视图单元格对齐到中心