美文网首页
iOS cell离开当前屏幕的判断方法

iOS cell离开当前屏幕的判断方法

作者: 新地球说着一口陌生腔调 | 来源:发表于2020-01-16 11:07 被阅读0次

    有时候视频播放器有种需求就是在列表中,用户滑动table,直到某个cell不可见时,当前cell播放的视频应该自动暂停!比如腾讯新闻的视频模块就是这样的体验。

    如何判断呢?我首先是记录当前点击cell的索引IndexPath,然后根据cell的高度、Y坐标与table的内容偏移位置结合来判断cell是否离开了屏幕。

    - (void)scrollViewDidScroll:(UIScrollView*)scrollView{

    NSIndexPath*optionIndexPath = [ZDOverallDataManagershareInstance].indexPath;

        if(!optionIndexPath) {

            return;

        }

        ZDFinancialVideoCell*optionCell = [self.baseTableViewcellForRowAtIndexPath:optionIndexPath];

        BOOL isVisible =YES;

        CGRectcellR = [self.baseTableViewrectForRowAtIndexPath:optionIndexPath];

        if((self.baseTableView.contentOffset.y- (cellR.origin.y))> cellR.size.height) {

            isVisible =NO;

        }

        if (cellR.origin.y - self.baseTableView.contentOffset.y > self.baseTableView.frame.size.height) {//下滑的情况

             isVisible =NO;

        }

        if(!isVisible&&[optionCellisKindOfClass:[ZDFinancialVideoCellclass]]) {//已经不可见了

            ZDLog(@"该暂停了!!!");

            if(!optionCell.model.isPlaying) {

                return;

            }

            [optionCellpause];

        }

    }

    相关文章

      网友评论

          本文标题:iOS cell离开当前屏幕的判断方法

          本文链接:https://www.haomeiwen.com/subject/vtlfzctx.html