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

该博客主要讨论了在竖视频页面上下滑动时如何正确处理播放页面的移除和暂停。当视频从屏幕中滑出,代码会移除播放视图并暂停播放。但遇到一个问题,即当前显示的cell也可能错误地执行此方法,导致视频播放异常。为解决这个问题,博主添加了一个判断,确保只有不在屏幕中的cell才会执行播放页面的移除操作。

需求

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

代码

这里需要注意的是,偶尔的情况下,当前屏幕中的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;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值