我有一个tableview
,我将更新tableview
中的数据。它每隔一秒接收数据,当收到数据时,它将替换一行中的旧数据。
我喜欢这个:
收到数据后,我打电话
[m_tableView reloadData];
所以,它会调用
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ }
所以我将更改此方法中的特定行数据,但如何设置row index
?
答案 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";
}
每次只更新第三行。
希望这有帮助。