(iphone)如何只更新tableview中的一行

时间:2011-08-31 13:29:04

标签: ios uitableview

我有一个tableview,我将更新tableview中的数据。它每隔一秒接收数据,当收到数据时,它将替换一行中的旧数据。 我喜欢这个: 收到数据后,我打电话

[m_tableView reloadData];

所以,它会调用

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath{ }

所以我将更改此方法中的特定行数据,但如何设置row index

5 个答案:

答案 0 :(得分:5)

你试过吗

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

夫特

func reloadRows(at indexPaths: [IndexPath], with animation: UITableView.RowAnimation)

这将允许您重新加载一行。

reloadData方法重新加载整个表

答案 1 :(得分:1)

据我了解,当您致电UITableViewCell时,会为每个ReloadData调用此方法。

如果您更新了基础datasource,则会更新包含您数据的单元格。

答案 2 :(得分:0)

只需将行分配给整数,您就可以从该方法访问它。

NSInteger row = [indexPath row];

答案 3 :(得分:0)

如果您尝试重新加载特定行

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

来自Apple文档

  

参数   indexPaths   一组NSIndexPath对象,用于标识要重新加载的行。   动画   一个常量,指示如何对重新加载进行动画处理,例如淡出或从底部滑出。有关这些常量的说明,请参阅“表格单元格插入和删除动画”。   动画常量会影响旧行和新行的滑动方向。例如,如果动画常量为UITableViewRowAnimationRight,则旧行向右滑动,新单元格从右侧滑入。

答案 4 :(得分:0)

在这种方法中,

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ }

只要你调用reloadData方法,你就可以编写这段代码来只更新特定的行。 像这样,

if(indexPath.row==2){
     cell.textLabel.text=@"New updated Value";
 }

每次只更新第三行。

希望这有帮助。