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

Надежда свою работу:

1

Implement didEndDisplaying, чтобы узнать, что клетка прокрутил вне поля зрения , и прекратите играть, когда вы его получите.

Смежные вопросы