WKCScrollView
#import <WKCScrollView/WKCPageControlView.h>
属性如下。有三种对齐类型。
typedef NS_ENUM(NSInteger,WKCPageControlViewPageAlignment) {
WKCPageControlViewPageAlignmentCenter, //居中
WKCPageControlViewPageAlignmentLeft, //左
WKCPageControlViewPageAlignmentRight //靠右
};
@property (nonatomic, weak) id<WKCPageControlViewDataSource> dataSource;
@property (nonatomic, assign) WKCPageControlViewPageAlignment alignment;
@property (nonatomic, strong) UIImage * backgroundImage;
@property (nonatomic, assign) NSInteger numberOfItem;
@property (nonatomic, assign) CGSize currentItemSize;
@property (nonatomic, assign) CGSize extraItemSize;
@property (nonatomic, assign) CGFloat itemSpacing;
@property (nonatomic, assign) CGFloat edgeSpaing;
@property (nonatomic, assign) NSInteger currentIndex;
但不同之处在于它只有 dataSource 来设置视图,没有 delegate 方法回调。您可以在 current
和 extra
中设置不同的视图。
- (NSInteger)numberOfViewsInWKCPageControlView:(WKCPageControlView *)pageControlView;
- (__kindof UIView *)WKCPageControlViewForCurrentItem:(WKCPageControlView *)pageControlView;
- (__kindof UIView *)WKCPageControlViewForExtraItem:(WKCPageControlView *)pageControlView;
- 设置
- (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;
}
- dataSource 回调
- (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;
}
- 根据您的 WKCScrollView 设置
CurrentIndex
- (void)WKCScrollViewDidEndDecelerating:(WKCScrollView *)scrollView {
[self.pageControlView setCurrentIndex:scrollView.currentIndex];
}