2016-12-27 6 views
-2

Ich habe UITableView und einige UITableviewCell drin. Ich muss das Video in jeder Zelle abspielen (jeweils ein Video).Ermitteln, ob Zelle sichtbar ist

Wenn ich die Tabellenansicht scrollen, wenn aktuelle Zelle spielt und sichtbar ist als das Video sollte fortgesetzt werden und wenn Zelle nicht sichtbar ist (nach dem Scrollen) als Video sollte aufhören.

Wie kann ich feststellen, welche Zelle in der Tabellenansicht sichtbar ist und welche nicht?

+0

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

+0

es wird automatisch gestoppt wie Zelle ist aus dem Speicher versuchen Sie es –

Antwort

2

Wenn Ihre Anforderung heraus ist herauszufinden, welche Zellen sichtbar sind und entsprechend verfahren, haben einen Blick auf den Code unten:

Stellen Sie sicher, Ihre Klasse dem UITableViewDelegate Protokoll entspricht.

In Ihrer scrollViewDidScroll können Sie überprüfen, welche alle Zellen derzeit sichtbar sind self.tableview.visibleCells.

Etwas wie folgt aus:

-(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

können Sie diese Methode UITableView Delegate verwenden:

Add Delegate: UITableViewDelegate 

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

Hoffnung seine Arbeit:

1

didEndDisplaying implementieren zu erfahren, dass die Zelle aus der Sicht gescrollt hat und hör auf zu spielen, wenn du es bekommst.

Verwandte Themen