gpt4 book ai didi

iphone - UITableView 在不滚动的情况下插入行

转载 作者:太空狗 更新时间:2023-10-30 03:17:39 65 4
gpt4 key购买 nike

我有一个从网络服务中提取的数据列表。我刷新数据,我想在当前数据上方的表格 View 中插入数据,但我想在表格 View 中保留我当前的滚动位置。

现在我通过在当前部分上方插入一个部分来完成此操作,但它实际上插入并向上滚动,然后我必须手动向下滚动。在此之前,我尝试禁用表格上的滚动,但这也没有用。

这看起来起伏不定而且看起来很老套。执行此操作的更好方法是什么?

[tableView beginUpdates];

[tableView insertSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];

[tableView endUpdates];

NSUInteger iContentOffset = 200; //height of inserted rows

[tableView setContentOffset:CGPointMake(0, iContentOffset)];

最佳答案

如果我正确理解你的任务,

我是这样做的:

if(self.tableView.contentOffset.y > ONE_OR_X_ROWS_HEIGHT_YOUDECIDE
{

self.delayOffset = self.tableView.contentOffset;
self.delayOffset = CGPointMake(self.delayOffset.x, self.delayOffset.y+ insertedRowCount * ONE_ROW_HEIGHT);

[self.tableView reloadData];

[self.tableView setContentOffset:self.delayOffset animated:NO];


}else
{
[self.tableView insertRowsAtIndexPath:indexPathArray WithRowAnimation:UITableViewRowAnimationTop];

}

使用这段代码,如果用户在表格的中间而不是顶部,uitableview 将重新加载新行,没有动画也没有滚动。如果用户在表格的顶部,他将看到行插入动画。

请注意代码中,我假设行的高度是相等的,如果不是,则只需计算您要插入的所有新行的高度。希望对您有所帮助。

关于iphone - UITableView 在不滚动的情况下插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872759/

65 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com