Ich versuche, ein PageControl für Bilder in einer CollectionViewCell anzuzeigen.Verwenden von PageControl in einer CollectionViewCell auf einem ViewController
Alles scheint korrekt zu funktionieren - die Anzahl der Seiten ist korrekt und selbst der Ausdruck (currentPage) zeigt den korrekten Index; das PageControl zeigt jedoch nicht die richtige aktuelle Seite an.
EncounterDetailViewController.swift
class EncounterDetailViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UIScrollViewDelegate {
// MARK: - Properties
var selectedEncounter: Encounter?
var currentPage = 0
// MARK: - UICollectionViewDataSource
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return (selectedEncounter?.images.count)!
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "imageCell", for: indexPath) as! EncounterCollectionViewCell
cell.imageView.sd_setImage(with: URL(string: (selectedEncounter?.images[indexPath.row])!))
cell.pageControl.numberOfPages = (selectedEncounter?.images.count)!
cell.pageControl.currentPage = self.currentPage
return cell
}
// MARK: - ScrollView Delegate Method
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let pageWidth = scrollView.frame.width
self.currentPage = Int((scrollView.contentOffset.x + pageWidth/2)/pageWidth)
print(currentPage)
}
}
EncounterCollectionViewCell.swift
class EncounterCollectionViewCell: UICollectionViewCell {
// MARK: - Outlets
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var pageControl: UIPageControl!
}
Welche Seite zeigt das 'pageControl'? –
Sie haben ein 'pageControl', aber Sie berechnen' currentPage' basierend auf dem 'collectionView'' contentOffset'. Warum? –
Ich versuche, die pageControls currentPage basierend auf jedem horizontalen Bildlauf zu ändern. – pmanning