更新iPhone上的表格单元格中的值

时间:2010-08-26 16:07:23

标签: iphone uitableview tableviewcell

如果我在一个包含很多行的iPhone应用程序中有tableView设置,我该如何更新其中一行?我知道他们在进入视图时手动刷新,但我想推出更新,为了争论计时器倒计时。

由于

3 个答案:

答案 0 :(得分:15)

感谢您的回答,我找到了另一种方法!

通过调用:

NSIndexPath *a = [NSIndexPath indexPathForRow:0 inSection:0]; // I wanted to update this cell specifically
CustomTableViewCell *c = (CustomTableViewCell *)[theTableView cellForRowAtIndexPath:a];

然后我可以直接修改存储在CustomTableViewCell中的标签,如下所示:

[c nowPlayingTrack].text = ...

希望有一天能帮助别人!

我不确定为什么但是因为自定义标签而在tableView上调用reloadData导致运行时错误。 :(

答案 1 :(得分:3)

您可以通过调用

重新加载一行
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

对于indexPaths,您必须创建一个包含要重新加载的行的indexPath的数组。行动画只描述是否以及如何重新加载行,无论是否有动画:

typedef enum {
   UITableViewRowAnimationFade,
   UITableViewRowAnimationRight,
   UITableViewRowAnimationLeft,
   UITableViewRowAnimationTop,
   UITableViewRowAnimationBottom,
   UITableViewRowAnimationNone,
   UITableViewRowAnimationMiddle
}

如果您不知道indexPath,可以通过调用

来获取它
+ (NSIndexPath *)indexPathForRow:(NSUInteger)row inSection:(NSUInteger)section

答案 2 :(得分:1)

我假设你正在使用某种类型的自定义UITableViewCell ....

我通常做的是创建一个自定义UITableViewCells的数组,并从那些填充我的UITableView。这样,我可以刷新底层对象(在本例中是你的UITableViewCell的timer属性)并刷新UITableView。

您可以直接访问它(原谅我缺乏实际的iphone语法......已经有几个月了)

您可以直接访问它,但我在这样做时遇到了问题。

[[[myUITableView cells] itemAtIndex:14] setTimerValue:WHATEVER];