1

我有在里面播放 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;
}

可悲的是,它不起作用,并且行的高度错误。似乎正确设置了大约 200 毫秒的高度,但随后将其缩短了tableView. 一般来说,这似乎会导致UITableView细胞队列混乱。知道如何在reloadRowsAtIndexPaths方法之后使用相同的单元格吗?

4

0 回答 0