Files
OrderScheduling/Pods/TYCyclePagerView/README.md
2025-03-13 15:09:17 +08:00

142 lines
4.2 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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'
```
## 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 <NSObject>
- (NSInteger)numberOfItemsInPagerView:(TYCyclePagerView *)pageView;
- (__kindof UICollectionViewCell *)pagerView:(TYCyclePagerView *)pagerView cellForItemAtIndex:(NSInteger)index;
/**
return pagerView layout,and cache layout
*/
- (TYCyclePagerViewLayout *)layoutForPagerView:(TYCyclePagerView *)pageView;
@protocol TYCyclePagerViewDelegate <NSObject>
@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<TYCyclePagerViewDataSource> dataSource;
@property (nonatomic, weak, nullable) id<TYCyclePagerViewDelegate> 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
如果你发现bugplease pull reqeust me <br>
如果你有更好的改进please pull reqeust me <br>