UITableView 滚动到最后一个单元格只显示一半的单元格

Posted

技术标签:

【中文标题】UITableView 滚动到最后一个单元格只显示一半的单元格【英文标题】:UITableView scrolling to last cell only displays half of the cell 【发布时间】:2012-08-10 17:47:22 【问题描述】:

我想滚动到包含自定义单元格的表格视图的底部。

这是我用来滚动的代码:

NSIndexPath *lastMessage = [NSIndexPath indexPathForRow:[self.conversation.messages count]-1 inSection:0];
[self.messageTable scrollToRowAtIndexPath:lastMessage atScrollPosition:UITableViewScrollPositionTop animated:YES];

这会滚动视图;但是,只有最后一个单元格的最顶部可见,大约 3/4 的单元格仍低于我必须手动向下滚动到的折叠。有关如何解决此问题的任何想法?

【问题讨论】:

您的整个表格视图是否可见?您的桌面视图下是否有任何内容,例如标签栏? 是的,整个表格视图都是可见的。一旦 scrolltorowatindexpath 方法完成,我只需要用手指完成一直向下滚动。 tableview下有view,但是frame不重叠 这个 tableview 是在你的 xib 文件(或 nub 文件)中还是在代码中创建的? 【参考方案1】:

原来是时间问题。当我从 viewdidload(contentsize 为 0)调用该方法时,tableview 尚未完全呈现。不过,在 viewDidAppear 中调用此方法效果很好。

【讨论】:

【参考方案2】:

UITableView 似乎对您的单元格有多大感到困惑。将 UITableView 上的 rowHeight 属性设置为自定义单元格的高度。

【讨论】:

感谢您的提示。正如 Sanjit 所说,对于未来的人们来说,自定义单元格执行此操作很重要。我个人是通过 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

以上是关于UITableView 滚动到最后一个单元格只显示一半的单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何滚动到 UITableView 或 UICollectionView 中的最后一个单元格之外

如何实现(几乎)全视图 uitableview 可以滚动过去最后一个单元格并在 iOS 中显示更多元素

向下滚动时,UITableview 看不到最后一个单元格

在 UITableView 中插入最后一行并平滑滚动

如何滚动到 UITableView 底部以查看所有单元格内容而不调整单元格高度?

在 UITableView 中向上滚动一页