iOS 获取一个cell从屏幕中消失的时机

iOS 获取一个cell从屏幕中消失的时机,第1张

需求


如上图,是一个竖视频页面,可以上下滑动,当当前视频从屏幕中滑出的时候,需要将播放页面移除,并暂停播放

代码

这里需要注意的是,偶尔的情况下,当前屏幕中的cell也会执行这个方法,所以这里需要添加一个判断,判断cell是否在屏幕中

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    /*
     这里是修复快速滑动的时候展示上一个播放画面的问题
     在cell 滚出屏幕的时候将播放画面
     移除,因为不将播放画面移除的话,在快速滚动的情况下,
     刚刚滚动到一个cell的时候,会有一瞬间展示的上一个视频的播放画面
    */
    CGRect rect = [self.tableView convertRect:cell.frame toView:self.view];
    /*
     CGRectEqualToRect(rect, self.view.bounds) ,发现偶发的情况会有当前正在展示的cell也会执行这个方法
     导致将要开始播放的时候停止播放,这里添加一个判断cell 是否在屏幕中
     **/
    if (self.currentIndex == indexPath.row && !CGRectEqualToRect(rect, self.view.bounds)) {
        [self.player.currentPlayerManager.view removeFromSuperview];
        [self.controlView pause];
        self.currentIndex = -10;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/989506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存