Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/KittenYang/KYAnimatedPageControl
A custom UIPageControl with multiple animations
https://github.com/KittenYang/KYAnimatedPageControl
Last synced: 3 months ago
JSON representation
A custom UIPageControl with multiple animations
- Host: GitHub
- URL: https://github.com/KittenYang/KYAnimatedPageControl
- Owner: KittenYang
- License: mit
- Created: 2015-06-08T10:02:54.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-07-06T17:30:54.000Z (over 8 years ago)
- Last Synced: 2024-07-19T01:17:29.688Z (4 months ago)
- Language: Objective-C
- Size: 790 KB
- Stars: 1,316
- Watchers: 33
- Forks: 190
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![CocoaPods Version](https://img.shields.io/badge/pod-v1.0.5-brightgreen.svg)
![License](https://img.shields.io/badge/license-MIT-blue.svg)
![Platform](https://img.shields.io/badge/platform-iOS-red.svg)##Intro
A custom **UIPageControl** with multiple animations. With two animation styles:
(自定义的**UIPageControl**。拥有两种动画样式:)
* **GooeyCircle**
* **粘性小球**
**Detail 细节**
>The longer distance the bubble moves , the severer gooey effect it has.>粘性小球会根据移动距离的大小拥有不同的弹性程度。移动距离越大,弹性效果越明显。
---
* **RotateRect**
* **旋转方块**
> You can not only scroll the UIScrollView subclasses such as UICollectionView ,UITableView and the **KYAnimatedPageControl** can automatically move with animation ,but also you can just **TAP** the target page in the **KYAnimatedPageControl**,and the scrollview will also automatically and intelligently scroll to the target position.
>**KYAnimatedPageControl** 不仅可以在你滑动UIScrollView的时候自动以动画的形式移动,而且你还可以直接在**KYAnimatedPageControl**上的点击要滚动到的目标页,此时除了**KYAnimatedPageControl**会以动画的形式移动,UIScrollView会很智能地滑到目标页面。
---
##Blog
[谈谈iOS中粘性动画以及果冻效果的实现](http://kittenyang.com/deformationandgooey/)
##Installation
`pod 'KYAnimatedPageControl', '~> 1.0.5'`
##Usage
* **Initialize**:
```objc
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.view addSubview:self.pageControl];```
* **Must implement methods in UIScrollViewDelegate**:
```objc
#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;
}```
##版本
##Version###v1.0.5
* 取消`-(void)display`方法的显式调用,使用更简单。
* fix a bug of `didSelectIndexBlock`###v1.0.4
* 增加点击某个Index的回调。
###v1.0.3
* 取消方块的结束抖动效果(需要可打开注释的代码)
* 改进判断滑动方向的算法。由之前的(当前contentOffset.x - 上一次的contentOffset.x)来判断方向,改成现在的(当前contentOffset.x - 上一次的contentOffset.x)是否划过一半来判断方向。
* 增加UIPanGesture。现在可以拖动Indicator了,小球会跟着你的手指跑了。通过新增的`@property(nonatomic,assign)BOOL swipeEnable;` 接口可以选择是否开启拖动手势。
* 增加一个接口方法。调用可以快速跳到目标页而不用点击。 `-(void)animateToIndex:(NSInteger)index;`###v1.0.2
* 增加旋转方块的抖动效果
###v1.0.1
* 增加粘性小球样式
###v1.0.0
* 第一次提交:完成旋转方块样式
##License
This project is under MIT License. See LICENSE file for more information.