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