Cocoa touch UITableView在不使用新单元格的情况下重新加载RowsatindExpaths
我的手机里有AVPlayer。有时,我想在播放视频时重新加载行。我使用reloadRowsAtIndexPaths方法进行此操作:Cocoa touch UITableView在不使用新单元格的情况下重新加载RowsatindExpaths,cocoa-touch,uitableview,avplayer,Cocoa Touch,Uitableview,Avplayer,我的手机里有AVPlayer。有时,我想在播放视频时重新加载行。我使用reloadRowsAtIndexPaths方法进行此操作: [_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 由于将AVPlayerLayer和AVPlayer状态复制到新的cell视频中可能很困难,因此在从一个视图移动到另一个视图后会重新启动,因此我想使用以前使用过的cell上的新
[_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
由于将AVPlayerLayer和AVPlayer状态复制到新的cell视频中可能很困难,因此在从一个视图移动到另一个视图后会重新启动,因此我想使用以前使用过的cell上的新数据更新视图:
(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单元格队列混乱。你知道重新加载rowsatindexpaths方法后如何使用同一单元格吗?你为什么不只重新加载未播放的单元格,并为其他单元格调用[cellController updateViews],因为我还必须更改行的高度。