私は、30個のアイテムを持つ水平コレクションビューの下でUIPageControlを実装する必要がありました。だから私はドットの数を固定し、それらのドットだけをスクロールしてドットの数を減らしました。コードに従ってください:
@IBOutlet var pageControl: UIPageControl!
var collectionDataList = [String]
let dotsCount = 5
override func viewDidAppear(_ animated: Bool) {
if collectionDataList.count < dotsCount {
self.pageControl.numberOfPages = collectionDataList.count
} else {
self.pageControl.numberOfPages = dotsCount
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView)
{
let pageWidth = scrollView.frame.width
self.currentPage = Int((scrollView.contentOffset.x + pageWidth/2)/pageWidth)
self.pageControl.currentPage = self.currentPage % dotsCount
}
私の知る限り、たくさんのページをお持ちの場合は、UIPageControl以外の方法を使用することをお勧めします。 – Sarah
これは典型的な状況ではなく、時間の99%は5〜6ページしかなく、ページビューは便利で正しい選択です。問題は、あなたが好きなだけ多く追加することが可能であり、これが起こるとき(頻繁ではない)、私はそれがひどく見えないようにしたいと思います。 – BinaryGuy
私は、ページ数が使用可能なスペースを超えた場合、エッジの2つのドットが矢印(回転された三角形)に変換され、より多くのものがあることを示すように実装されていることがわかりました。 – Andrej