2016-12-27 125 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     
} 

希望它的工作: