使用新单元格的UITableView reloadRowsAtIndexPaths

时间:2013-11-05 12:46:04

标签: cocoa-touch uitableview avplayer

我有内置AVPlayer的单元格。有时,我想在视频播放时重新加载行。我使用reloadRowsAtIndexPaths方法:

 [_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];

由于将AVPlayerLayerAVPlayer状态复制到新单元格(从视图移动到另一个视频后重新启动视频)可能很难,我想用有关单元格的新数据更新视图之前:

 (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = nil;
    cellController = [_cellControllers controllerForIndex:indexPath.row];

    cell = [tableView deque .... ]

    if (!cellController.isPlayingVideo)
    { 
       // use new cell only if video is not playing
       cellController.cell = cell ;
    }       
    [cellController updateViews];

    return cellController.cell;
}

可悲的是,它不起作用,排的行高有误。似乎正确设置了大约200ms的高度,但是它被tableView缩短了。通常,这似乎会导致UITableView单元格队列中的混乱。任何想法如何在reloadRowsAtIndexPaths方法后使用相同的单元格?

0 个答案:

没有答案