仅重新加载自定义UITableViewCell的子视图

时间:2013-01-28 14:22:20

标签: ios ios5 uitableview

我目前正在开发适用于iOS 5及更高版本的应用,其中使用 AVQueuePlayer 的实例在自定义UITableViewCell 中播放视频。

有很多这样的自定义单元播放'n'个视频。

我希望在给定时间后实现禁用播放器播放视频的功能。

我有一个倒计时器,显示 UILabel 中剩余的时间,用于禁用AVQueuePlayer实例下的播放器。

我必须在一分钟后(假设)更新计时器,以显示禁用发生的剩余时间。例如“剩下5分钟”

我正在使用 NSTimer 来实现此目的。但是,我不知道如何仅重新加载更新自定义UITableViewCell的 UILabel 实例。我在一些线程中看到过使用以下方法

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

但是,如果我在播放视频时这样做,它会停止并再次重新加载。

这个问题有更好的解决方案吗?

1 个答案:

答案 0 :(得分:3)

你可以在创建单元时保存对单元格的引用(听起来你只是制作了每种单元格类型之一,即使你有一个tableview);或者从桌子上抓住牢房并将标签拉出来。

我很想设置标签的标签,然后用它来取回标签。

创建标签(或在界面构建器中设置)时,请致电[myLabel setTag:LABEL_TAG];

然后您可以:

UITableViewCell * myCell = self.myTableView cellForRowAtIndexPath:LABLE_CELL_POSITION];
UILabel * myLabel = [cell viewWithTag:LABEL_TAG];
myLabel.setText:@"my new value";

在上面的LABLE_CELL_POSITION中,将是你的tableview中单元格的位置(0到...); LABEL_TAG是您要用来表示该视图的任意数字,可能是1234