如何在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) }