NKJPagerViewController 是一个 PagerTabStrip,来自 Android。它包含一个无限滚动器的 UIScrollView。
该 viewController 受ICViewPager的启发。最大的不同是无限滑动页面。
NKJPagerViewController 至少需要 Xcode 6,目标是 iOS 7.1 以上或 Mac OS 10.10 OS X Yosemite 以上。
作为 NKJPagerViewController 的子类实现,并在子类中实现 dataSource 和 delegate 方法。
- (void)viewDidLoad
{
self.dataSource = self;
self.delegate = self;
[super viewDidLoad];
}
决定标签数量。
- (NSUInteger)numberOfTabView
{
return 10;
}
决定每个标签的宽度。
- (NSInteger)widthOfTabView
{
return 160;
}
设置每个标签的视图设计。
- (UIView *)viewPager:(NKJPagerViewController *)viewPager viewForTabAtIndex:(NSUInteger)index
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 160, 44)];
label.backgroundColor = [UIColor grayColor];
label.font = [UIFont systemFontOfSize:12.0];
label.text = [NSString stringWithFormat:@"Tab #%lu", index * 10];
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor blackColor];
return label;
}
为每个标签设置视图控制器。
- (UIViewController *)viewPager:(NKJPagerViewController *)viewPager contentViewControllerForTabAtIndex:(NSUInteger)index
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ContentViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"ContentViewController"];
vc.textLabel = [NSString stringWithFormat:@"Content View #%lu", index];
return vc;
}
此方法为可选。
- (void)viewPager:(NKJPagerViewController *)viewPager didSwitchAtIndex:(NSInteger)index withTabs:(NSArray *)tabs
{
// do something
}
NKJPagerViewController 在 MIT 许可下可用。更多信息请参见 LICENSE 文件。