只重新加载一个自定义UITableViewCell的子视图
我目前正在开发iOS 5及以上版本的应用程序,使用AVQueuePlayer的实例在自定义的UITableViewCell中播放video。
有n个这样的定制单元播放“n”个video。
我想实现一个function, 禁止播放器在给定时间后播放video。
我有一个倒数计时器,它显示在UILabel中用于禁用AVQueuePlayer实例下的播放器的时间。
我必须在一分钟后更新计时器(假设)以显示禁用发生的时间。 例如“还剩5分钟” 。
我正在使用NSTimer来达到这个目的。 但是,我不知道如何重新加载或更新自定义UITableViewCell的UILabel实例。 我在一些线程中看到了使用下面的方法
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
但是,如果我在播放video时这样做,它会停下来并重新加载。
有没有更好的解决这个问题?
你可以保存一个对你的单元格的引用,当你创build它时(听起来就像你只是制作一个单元格types,即使你有一个tableview)。 或从桌子上抓住单元格并将标签从中拉出。
我试图设置标签的标签,然后用它来取回标签。
当您创build标签(或在界面构build器中设置)时,请调用[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
。