ios - UItableview scrollToRowAtIndexPath 没有正确显示最后一行

标签 ios uitableview scroll

我有一个带有自定义单元格的表格 View ,其动态单元格高度取决于单元格内容。

我的问题如下,当我在 viewDidLoad 中以编程方式询问滚动到它工作的给定位置时,除了最后一行。有时该行出现但不完整,有时甚至不出现。在这两种情况下,我都必须手动滚动才能看到该行。

代码如下:

[self.tableView reloadData];

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:aRow inSection:aSection];
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES ];

这是 iOS 的错误吗?任何解决方法?

最佳答案

据我所知,

view显示在屏幕上之前的所有操作都在viewDidLoad中初始化所有的UI对象,数据对象都可以在这个方法中分配和初始化.

所有对view的操作数据修改,UI修改都需要在viewDidAppear中完成。甚至可以在 viewWillAppear 中完成一些操作。

因此对于您的问题,UITableView 滚动必须在表格加载并显示在屏幕上后完成,即在 viewDidAppear 中。

另请注意,每次向用户显示 View 时都会调用 viewDidAppearviewWillAppear,因此如果您只想在第一个实例中滚动表格,您可以 header 中的标志指示实例。

关于ios - UItableview scrollToRowAtIndexPath 没有正确显示最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13028239/

相关文章:

swift - 如何在子 UICollectionView 上获取 UITableView 的一部分

javascript - 如何抑制窗口鼠标滚轮滚动...?

css - 烦人的水平滚动条

ios - navigationBar.isHidden 和 setNavigationBarHidden 的区别

ios - 在核心数据中使用 UIManagedDocument 的标准(或正确)方法是什么

ios - 如何在 Objective C 的 UI 导航栏上添加很棒的字体

ios - UITableViewCell 行为奇怪 - 文本变为白色

iphone - 当用户返回 View Controller 时如何取消选择 uitableview 单元格

Swift collectionview 幻灯片上的幻灯片对齐

java - Objective-C : Serializing/Archiving issues