使用网上源码KYAnimatedPageControl
self.pageControl = [[KYAnimatedPageControl alloc]initWithFrame:CGRectMake(CGRectGetWidth(self.view.bounds)/ 2- 50, CGRectGetHeight(self.view.bounds) - 100, 100, 50)]; self.pageControl.pageCount = 4; // 数量 self.pageControl.unSelectedColor = [UIColor colorWithWhite: 0.9 alpha: 1]; // 未滑动的颜色 self.pageControl.selectedColor = [UIColor redColor]; // 滑动的颜色 self.pageControl.bindScrollView = _scrollView; // 需要绑定 self.pageControl.shouldShowProgressLine = YES; // 填充,小球之前的线条变色 self.pageControl.indicatorStyle = IndicatorStyleGooeyCircle; // 样式 self.pageControl.indicatorSize = 15; // 圆圈大小 self.pageControl.swipeEnable = YES; // 这有啥用 [self.pageControl display]; // 设置完所有参数调用 [self.view addSubview:self.pageControl]; self.pageControl.didSelectIndexBlock = ^(NSInteger index){ NSLog( @" Did Selected index : %ld ",( long)index); };
UIScrollViewDelegate:
#pragma mark - <UIScrollViewDelegate> -( void)scrollViewDidScroll:(UIScrollView *)scrollView{ // Indicator动画 [self.pageControl.indicator animateIndicatorWithScrollView:scrollView andIndicator:self.pageControl]; if (scrollView.dragging || scrollView.isDecelerating || scrollView.tracking) { // 背景线条动画 [self.pageControl.pageControlLine animateSelectedLineWithScrollView:scrollView]; } } -( void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ self.pageControl.indicator.lastContentOffset = scrollView.contentOffset.x; } -( void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ [self.pageControl.indicator restoreAnimation:@( 1.0/self.pageControl.pageCount)]; } - ( void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{ self.pageControl.indicator.lastContentOffset = scrollView.contentOffset.x; }
demo下载地址:
效果图: