我有在里面播放 AVPlayer 的单元格。有时,我想在播放视频时重新加载行。我使用 reloadRowsAtIndexPaths 方法来做到这一点:
[_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
由于这可能很难复制AVPlayerLayer
和AVPlayer
状态到新单元格(从一个视图移动到另一个视图后视频重新启动),我想用之前使用的单元格上的新数据更新视图:
(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
方法之后使用相同的单元格吗?