Podczas nauki iOS6 nowych funkcji dostałem pytanie o UICollectionView.
Obecnie testuję to z układem przepływu, a kierunek przewijania jest ustawiony na poziomy, przewijanie i obsługa stronicowania włączona. Ustawiłem jego rozmiar dokładnie tak samo, jak komórki mojego klienta, aby mógł wyświetlać jeden na raz, a po przewinięciu na bok użytkownik zobaczyłby pozostałe istniejące komórki.iOS6 UICollectionView i UIPageControl - jak uzyskać widoczne komórki?
Działa doskonale.
Teraz chcę dodać i UIPageControl do utworzonego przeze mnie widoku kolekcji, aby mógł pokazać, która komórka jest widoczna i ile jest tam komórek.
Tworzenie kontroli strony było raczej proste, zdefiniowano ramkę i numberOfPages.
Problem, który mam jako znaczniki tytułów pytań, polega na określeniu, która komórka jest obecnie widoczna w widoku kolekcji, aby można było zmienić bieżącą stronę kontrolki strony.
Próbowałem już metod delegatów, takich jak cellForItemAtIndexPath, ale jest on przeznaczony do ładowania komórek, a nie ich wyświetlania. didEndDisplayingCell uruchamia się, gdy komórka nie jest już wyświetlana, przeciwnie do tego, czego potrzebuję.
Jego wydaje się, że -visibleCells i -indexPathsForVisibleItems, metody widoku kolekcji, są właściwym wyborem dla mnie, ale wpadł na inny problem. Kiedy je wyzwolić?
Z góry dziękuję, mam nadzieję, że zrobiłem się wystarczająco jasny, abyście mogli mnie zrozumieć!
bez konieczności tworzenia ivar dla CollectionView: '- (void) scrollViewDidEndDecelerating (UIScrollView *) Scrollview { CGFloat pageWidth = _tutorialCollectionViewFrame.size.width; _pageControl.currentPage = scrollView.contentOffset.x/pageWidth; } ' – mmackh
+10 jeśli mogę: D – Omarj
Tak to jest prawidłowa odpowiedź ...: func scrollViewDidEndDecelerating (Scrollview: UIScrollView) { niech pageWidth: CGFloat = self.collectionView.frame.size.width self.pageControl.currentPage = Int (self.collectionView.contentOffset.x/pageWidth) } –