2016-12-27 112 views
-2

我有UITableView和一些UITableviewCell在里面。我必须在每个单元格中播放视频(每次单个视频)。确定细胞是否可见

当我滚动表格视图时,如果当前单元格正在播放且可见,则应继续播放视频,如果单元格不可见(滚动后),则应停止播放视频。

如何确定哪个单元格在表格视图中可见,哪些不是?

+0

http://stackoverflow.com/questions/9157979/how-to-make-specific-uitableviewcell-to-be-visible-on-screen-while-having-more-r –

+0

它会自动停止,因为单元格是内存不足尝试 –

回答

2

如果您的要求是搞清楚哪些细胞是可见并进行相应处理,看看下面的代码:

确保你的类符合UITableViewDelegate协议。

在您的scrollViewDidScroll中,您可以使用self.tableview.visibleCells来检查当前所有单元格是否可见。

事情是这样的:

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

    [mainTableView.visibleCells enumerateObjectsUsingBlock:^(__kindof UITableViewCell * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 

     //here you can get indexPath of each cell currently visible when scroll view ends scrolling. 

     NSIndexPath *indexPath = [mainTableView indexPathForCell:obj]; 

    }]; 
} 
3

您可以使用此UITableView的委托方法:

Add Delegate: UITableViewDelegate 

    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { 
// This method is call while cell display     
} 

希望它的工作: