自定义pageControll.
原理较简单,就是切换当前坐标下的视图样式.
使用起来也简单.也是同UITableView.
pod 'WKCPageControlView'
引入头文件.
#import <WKCPageControlView.h>
- 初始化
- (WKCPageControlView *)pageControlView {
if (!_pageControlView) {
_pageControlView = [[WKCPageControlView alloc] initWithFrame:CGRectMake(0, 500, 375, 60)];
_pageControlView.dataSource = self;
_pageControlView.currentItemSize = CGSizeMake(50, 50);
_pageControlView.extraItemSize = CGSizeMake(30, 30);
_pageControlView.itemSpacing = 8;
_pageControlView.edgeSpaing = 15;
_pageControlView.alignment = WKCPageControlViewPageAlignmentCenter;
_pageControlView.backgroundColor = [UIColor greenColor];
}
return _pageControlView;
}
提供了三种位置布局,靠左,靠右以及居中.
typedef NS_ENUM(NSInteger,WKCPageControlViewPageAlignment) {
WKCPageControlViewPageAlignmentCenter, //居中
WKCPageControlViewPageAlignmentLeft, //左
WKCPageControlViewPageAlignmentRight //靠右
};
- 布局.这里直接给了两个布局回调,一是当前坐标的视图,二是其它的视图.刷新数据时,reloadData即可.
[self.pageControlView reloadData];
- (NSInteger)numberOfViewsInWKCPageControlView:(WKCPageControlView *)pageControlView {
return self.dataSource.count;
}
- (UIView *)WKCPageControlViewForCurrentItem:(WKCPageControlView *)pageControlView {
UIView *view = [UIView new];
view.backgroundColor = [UIColor redColor];
return view;
}
- (UIView *)WKCPageControlViewForExtraItem:(WKCPageControlView *)pageControlView {
UIView *view = [UIView new];
view.backgroundColor = [UIColor grayColor];
return view;
}
- 更改坐标.
[self.pageControlView setCurrentIndex:scrollView.currentIndex];
根根滑动视图的切换而切换.下边是与WKCScrollView配合使用的.
- (void)WKCScrollViewDidScroll:(WKCScrollView *)scrollView contentOffset:(CGPoint)offset currentIndex:(NSInteger)index {
[self.pageControlView setCurrentIndex:scrollView.currentIndex];
}
效果图

如发现bug或问题,请私信.github地址
网友评论