Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/12207480/TYCyclePagerView
a simple and usefull cycle pager view ,and auto scroll banner view(轮播图) ,include pageControl for iOS,support Objective-C and swift
https://github.com/12207480/TYCyclePagerView
autoscrolling banner cycle pagecontrol pager
Last synced: 20 days ago
JSON representation
a simple and usefull cycle pager view ,and auto scroll banner view(轮播图) ,include pageControl for iOS,support Objective-C and swift
- Host: GitHub
- URL: https://github.com/12207480/TYCyclePagerView
- Owner: 12207480
- License: mit
- Created: 2017-07-20T14:22:05.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-10T03:46:52.000Z (8 months ago)
- Last Synced: 2024-09-20T03:48:34.627Z (3 months ago)
- Topics: autoscrolling, banner, cycle, pagecontrol, pager
- Language: Objective-C
- Homepage:
- Size: 1.33 MB
- Stars: 1,792
- Watchers: 28
- Forks: 329
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - TYCyclePagerView - a simple and usefull cycle pager view ,and auto scroll banner view(轮播图) , include pageControl for iOS, support Objective-C and swift. (iOS / CyclePagerView)
README
# TYCyclePagerView
a simple and usefull cycle pager view ,and auto scroll banner view ,include pageControl for iOS,support Objective-C and swift.this has been used in APP.## CocoaPods
```
pod 'TYCyclePagerView'
```
## Carthage
```
github "12207480/TYCyclePagerView"
```
## Requirements
* Xcode 8 or higher
* iOS 7.0 or higher
* ARC### ScreenShot
![image](https://github.com/12207480/TYCyclePagerView/blob/master/ScreenShot/TYCyclePagerView.gif)
## API
* DataSource and Delegate
```objc@protocol TYCyclePagerViewDataSource
- (NSInteger)numberOfItemsInPagerView:(TYCyclePagerView *)pageView;
- (__kindof UICollectionViewCell *)pagerView:(TYCyclePagerView *)pagerView cellForItemAtIndex:(NSInteger)index;
/**
return pagerView layout,and cache layout
*/
- (TYCyclePagerViewLayout *)layoutForPagerView:(TYCyclePagerView *)pageView;@protocol TYCyclePagerViewDelegate
@optional
/**
pagerView did scroll to new index page
*/
- (void)pagerView:(TYCyclePagerView *)pageView didScrollFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex;/**
pagerView did selected item cell
*/
- (void)pagerView:(TYCyclePagerView *)pageView didSelectedItemCell:(__kindof UICollectionViewCell *)cell atIndex:(NSInteger)index;// More API see project
```* Class
```objc
@interface TYCyclePagerView : UIView
// will be automatically resized to track the size of the pagerView
@property (nonatomic, strong, nullable) UIView *backgroundView;@property (nonatomic, weak, nullable) id dataSource;
@property (nonatomic, weak, nullable) id delegate;// pager view layout is important
@property (nonatomic, strong, readonly) TYCyclePagerViewLayout *layout;/**
is infinite cycle pageview
*/
@property (nonatomic, assign) BOOL isInfiniteLoop;/**
pagerView automatic scroll time interval, default 0,disable automatic
*/
@property (nonatomic, assign) CGFloat autoScrollInterval;@interface TYCyclePagerViewLayout : NSObject
@property (nonatomic, assign) CGSize itemSize;
@property (nonatomic, assign) CGFloat itemSpacing;
@property (nonatomic, assign) UIEdgeInsets sectionInset;@property (nonatomic, assign) TYCyclePagerTransformLayoutType layoutType;
@property (nonatomic, assign) CGFloat minimumScale; // sacle default 0.8
@property (nonatomic, assign) CGFloat minimumAlpha; // alpha default 1.0
@property (nonatomic, assign) CGFloat maximumAngle; // angle is % default 0.2@interface TYPageControl : UIControl
@property (nonatomic, assign) NSInteger numberOfPages; // default is 0
@property (nonatomic, assign) NSInteger currentPage; // default is 0. value pinned to 0..numberOfPages-1// indicatorTint color
@property (nullable, nonatomic,strong) UIColor *pageIndicatorTintColor;
@property (nullable, nonatomic,strong) UIColor *currentPageIndicatorTintColor;// indicator image
@property (nullable, nonatomic,strong) UIImage *pageIndicatorImage;
@property (nullable, nonatomic,strong) UIImage *currentPageIndicatorImage;
```## Usage
```objc
- (void)addPagerView {
TYCyclePagerView *pagerView = [[TYCyclePagerView alloc]init];
pagerView.layer.borderWidth = 1;
pagerView.isInfiniteLoop = YES;
pagerView.autoScrollInterval = 3.0;
pagerView.dataSource = self;
pagerView.delegate = self;
// registerClass or registerNib
[pagerView registerClass:[TYCyclePagerViewCell class] forCellWithReuseIdentifier:@"cellId"];
[self.view addSubview:pagerView];
_pagerView = pagerView;
}- (void)addPageControl {
TYPageControl *pageControl = [[TYPageControl alloc]init];
//pageControl.numberOfPages = _datas.count;
pageControl.currentPageIndicatorSize = CGSizeMake(8, 8);
// pageControl.pageIndicatorImage = [UIImage imageNamed:@"Dot"];
// pageControl.currentPageIndicatorImage = [UIImage imageNamed:@"DotSelected"];
// [pageControl addTarget:self action:@selector(pageControlValueChangeAction:) forControlEvents:UIControlEventValueChanged];
[_pagerView addSubview:pageControl];
_pageControl = pageControl;
}
- (void)loadData {
// load data to _datas
_pageControl.numberOfPages = _datas.count;
[_pagerView reloadData];
}```
### Contact
如果你发现bug,please pull reqeust me
如果你有更好的改进,please pull reqeust me### License
TYCyclePagerView is released under the MIT license. See LICENSE for details.