Ich habe eine UICollectionView mit jeder Seite genau die gleiche Größe wie der Bildschirm. Die Bildlaufrichtung ist horizontal. Ich möchte die aktuellen sichtbaren Zellen abrufen, während die Ansicht gescrollt wird.UICollectionView indexPathsForVisibleItems funktioniert nicht in einem bestimmten Fall
Zum Beispiel, wenn ich auf einer ganzen Seite bin, bekomme ich nur den Index dieser Seite, wenn ich in der Mitte von zwei Seiten scrollen, dann kann ich diese zwei Seiten Index bekommen. Ich weiß, dass es indexPathsForVisibleItems
Methode gibt. Es funktioniert für den Fall beim Scrollen in der Mitte. Es wird den Index von zwei Zellen zurückgeben.
Aber wenn ich auf einer ganzen Seite bin, wird es auch zwei Seiten zurückgeben. Seltsamerweise geschieht dies auf meinem iPhone 7 Plus, aber wenn ich es auf iPhone 6s teste, funktioniert es gut und gibt den einzelnen Index der gegenwärtigen Seite zurück.
Scheint die Methode funktioniert nicht für größere Bildschirme?
Meine Sammlung Ansicht:
CGSize screenSize = [UIScreen mainScreen].sc_fixedBounds.size;
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
flowLayout.minimumLineSpacing = 0.0;
flowLayout.minimumInteritemSpacing = 0.0;
flowLayout.itemSize = screenSize;
UIColloctionView *collectionView =
[[UICollectionView alloc] initWithFrame:SCRectMakeWithSize(screenSize) collectionViewLayout:flowLayout];
collectionView.backgroundColor = [UIColor clearColor];
collectionView.scrollsToTop = NO;
collectionView.pagingEnabled = YES;
collectionView.showsHorizontalScrollIndicator = NO;
collectionView.showsVerticalScrollIndicator = NO;
Die Methode i aktuellen sichtbaren Index erhalten folgende Zwecke verwendet:
NSArray<NSIndexPath *> *indexPaths = [_tabsCollectionView indexPathsForVisibleItems];
Auf größeren Bildschirm, diese 2 Artikel zurück, wenn ich die ganze Seite sehen bin.
Einige verwandte Code wird hilfreich sein. –
Ich weiß nicht, über Ihr Problem, aber eine andere Arbeit könnte um den Scroll-Offset zu überprüfen, um den IndexPath abrufen. Es ist einfacher, wenn Sie nur einen Abschnitt, mehrere Zeilen oder eine Zeile pro Abschnitt haben. – Larme