如何在UIScrollView与PagingEnabled更改页面时更新UIPageControl?

如何使用当用户在UIScrollView中滚动到新页面时,UIPageControl会更新?

我之前使用过它,似乎效果很好。 务必将UIScrollView.delegate设置为self。

#pragma mark - UIScrollViewDelegate methods - (void)scrollViewDidEndDecelerating:(UIScrollView *)sender { uint page = sender.contentOffset.x / width; [self.pageControl setCurrentPage:page]; } 

在您定义UIScrollView和UIPageControl的位置,您必须实现此方法:

 - (void)scrollViewDidScroll:(UIScrollView *)_scrollView { if (pageControlIsChangingPage) return; CGFloat pageWidth = _scrollView.frame.size.width; int page = floor((_scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1; pageControl.currentPage = page; } 

和这个 :

 - (void)scrollViewDidEndDecelerating:(UIScrollView *)_scrollView { pageControlIsChangingPage = NO; } 

其中pageControlIsChangingPage是:

 BOOL pageControlIsChangingPage; 

以下是Swift的这个答案的更新:

 func scrollViewDidEndDecelerating(scrollView: UIScrollView) { pageControl.currentPage = Int(myScrollView.contentOffset.x) / Int(myScrollView.frame.width) }