Iphone 如何保留旧的可见单元格';在UITableView顶部插入新单元格后的位置
假设我有一个表视图,我想实现如下内容:Iphone 如何保留旧的可见单元格';在UITableView顶部插入新单元格后的位置,iphone,uitableview,Iphone,Uitableview,假设我有一个表视图,我想实现如下内容: 默认情况下,表视图包含n单元格 新单元格将添加到表格视图的顶部(标题) 表视图的数据源是一个可变数组 问题是当我使用[tableview reloadData]时,新数据总是显示在tableview的顶部,但我想要的是将旧的可见单元格保留在旧位置,这意味着重新加载数据后不会刷新。我尝试了一些解决方案,我发现如果我在尾部添加新的单元格,并更新tableview,旧的可见单元格将保持原来的位置,而无需任何额外的努力。但是如果我在顶部添加新的单元格,我不知道
- 默认情况下,表视图包含
单元格n
- 新单元格将添加到表格视图的顶部(标题)
- 表视图的数据源是一个可变数组
[tableview reloadData]
时,新数据总是显示在tableview的顶部,但我想要的是将旧的可见单元格保留在旧位置,这意味着重新加载数据后不会刷新。我尝试了一些解决方案,我发现如果我在尾部添加新的单元格,并更新tableview,旧的可见单元格将保持原来的位置,而无需任何额外的努力。但是如果我在顶部添加新的单元格,我不知道如何将旧的可见单元格保留在旧的位置
作为参考,我认为iPhone的官方Twitter应用程序只是实现了我在时间线视图中想要的东西,但我不知道如何存档它
伙计们,你们知道吗
非常感谢
-徐东尼
[更新]在文本中描述我想要什么有点困难。我添加了一些图片
如图所示[链接如下],默认单元格从加利福尼亚部分开始,我想在“Brea”之前添加3个新单元格,我想在添加“新单元格1,2,3”之后,单元格“Brea”仍然保持原来的位置。换句话说,新的单元格1、2、3在更新后不可见
很抱歉,因为我没有足够的声誉来使用图像,请访问此url我已经找到了如何实现此功能的方法,希望这可以帮助其他想要同样效果的人 关键是
UITableView
是UIScrollView
的一个子类。因此,UITableView
具有UIScrollView
的所有属性,尤其是其中一个属性适用于此:UITableView.contentOffset
,也可以使用[UITableView setContentOffset:animated:
设置动画
为了将Twitter与iPhone官方应用程序的效果相同,我们需要知道每次添加或删除多少偏移量。记住前一个偏移量,并在没有动画的情况下设置偏移量+/-增量偏移量
完成。我已经想出了如何实现这一点,希望这能帮助其他想要同样效果的人 关键是
UITableView
是UIScrollView
的一个子类。因此,UITableView
具有UIScrollView
的所有属性,尤其是其中一个属性适用于此:UITableView.contentOffset
,也可以使用[UITableView setContentOffset:animated:
设置动画
为了将Twitter与iPhone官方应用程序的效果相同,我们需要知道每次添加或删除多少偏移量。记住前一个偏移量,并在没有动画的情况下设置偏移量+/-增量偏移量
完成。刚刚用这里的代码片段回答了一个类似的问题 基本上:
- 将滚动偏移量保存在调用beginUpdate:的位置
- 代替调用InsertCell,您可以将单元格的高度添加到保存的偏移量中
- 在调用endUpdate:的位置,调用reloadData,然后按保存的偏移量滚动,不显示动画
- 将滚动偏移量保存在调用beginUpdate:的位置
- 代替调用InsertCell,您可以将单元格的高度添加到保存的偏移量中
- 在调用endUpdate:的位置,调用reloadData,然后按保存的偏移量滚动,不显示动画
tableView:cellForRowAtIndexPath:
?我不太明白你的意思,你的意思是你的表视图自动滚动到顶部吗?我想这就是他的意思,如果他在顶部加上单元格,那就是。这取决于你如何实现tabieview数据源协议。@vodkhang,@Rudiger,是的,这就是我的意思,新的单元格将自动显示在tableview的顶部。@Toro,对不起,我不明白你的意思。我已经检查了UITableViewDataSource中所有可能的方法,但找不到任何与单元格位置相关的方法。你是指tableView:cellforrowatinexpath:
?