WKCPageControlView 0.1.4

WKCPageControlView 0.1.4

yang666 维护。



  • 作者
  • WeiKunChao

WKCScrollView

Carthage compatible CocoaPods compatible License: MIT

#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 方法回调。您可以在 currentextra 中设置不同的视图。

- (NSInteger)numberOfViewsInWKCPageControlView:(WKCPageControlView *)pageControlView;
- (__kindof UIView *)WKCPageControlViewForCurrentItem:(WKCPageControlView *)pageControlView;
- (__kindof UIView *)WKCPageControlViewForExtraItem:(WKCPageControlView *)pageControlView;
  1. 设置
- (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;
}
  1. 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;
}
  1. 根据您的 WKCScrollView 设置 CurrentIndex
- (void)WKCScrollViewDidEndDecelerating:(WKCScrollView *)scrollView {
    [self.pageControlView setCurrentIndex:scrollView.currentIndex];
}

Alt text.