一个带有多个动画的自定义 UIPageControl。具有两种动画风格:)
(自定义的 UIPageControl。有两种动画样式:)
粘性小球
粘性小球
细节
气泡移动的距离越长,其粘性效果越强烈。
粘性小球会根据移动距离的大小拥有不同的弹性程度。移动距离越大,弹性效果越明显。
您不仅可以在滚动 UIScrollView 子类(如 UICollectionView、UITableView)时,KYAnimatedPageControl 也会自动以动画的形式移动,还可以直接在 KYAnimatedPageControl 上点击目标页面,此时 UIScrollView 也会自动且智能地滚动到目标位置。
KYAnimatedPageControl 不仅可以在您滑动 UIScrollView 的时候自动以动画的形式移动,而且您还可以直接在 KYAnimatedPageControl 上的点击要滚动到的目标页,此时除了 KYAnimatedPageControl 会以动画的形式移动,UIScrollView 也会很智能地滑到目标页面。
pod 'KYAnimatedPageControl', '~> 1.0.4'
self.pageControl = [[KYAnimatedPageControl alloc]initWithFrame:CGRectMake(20, 450, 280, 50)];
self.pageControl.pageCount = 8;
self.pageControl.unSelectedColor = [UIColor colorWithWhite:0.9 alpha:1];
self.pageControl.selectedColor = [UIColor redColor];
self.pageControl.bindScrollView = self.demoCollectionView;
self.pageControl.shouldShowProgressLine = YES;
self.pageControl.indicatorStyle = IndicatorStyleGooeyCircle;
self.pageControl.indicatorSize = 20;
[self.pageControl display];
[self.view addSubview:self.pageControl];
#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;
}
@property(nonatomic,assign)BOOL swipeEnable;
接口可以选择是否开启拖动手势。-(void)animateToIndex:(NSInteger)index;
本项目采用 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。