测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2016 年 2 月 |
由 Kareem Hewady 维护。
这是对标签页面视图控制器的一个略有调整的实现。它基于 guilhermearaujo/GUITabPagerViewController 形成很大的影响。
新增功能
这是渐进式滚动和非渐进式滚动行为的一个并排比较。
渐进式(在左侧)跟踪触摸移动以相应地更新标签栏。
非渐进式(在右侧)在触摸开始移动时快速跳转到下一个标签。
CocoaPods(推荐)
将以下行添加到您的 Podfile
pod 'KHTabPagerViewController', '~> 1.0.0'
然后向您视图控制器添加 #import <KHTabPagerViewController.h>
。
手动
将 KHTabPagerViewController
文件夹复制到您的项目中,然后在您的视图控制器中添加 #import "KHTabPagerViewController.h"
。
要使用它,您应该创建一个继承自 KHTabPagerViewController
的视图控制器。按照以下方式编写您的 viewDidLoad
方法
- (void)viewDidLoad {
[super viewDidLoad];
[self setDataSource:self];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self reloadData];
}
然后,实现 KHTabPagerDataSource
以填充视图。数据源有几个必须实现的方法和几个可选方法。
数据源方法将允许您为您的标签页面视图控制器提供内容。
- (NSInteger)numberOfViewControllers;
- (UIViewController *)viewControllerForIndex:(NSInteger)index;
请注意,尽管这些方法是可选的,但标签设置将需要您返回视图或字符串才能正常工作。
- (UIView *)viewForTabAtIndex:(NSInteger)index;
- (NSString *)titleForTabAtIndex:(NSInteger)index;
- (CGFloat)tabHeight; // Default value: 44.0f
- (UIColor *)tabColor; // Default value: [UIColor orangeColor]
- (UIColor *)tabBackgroundColor; // Default: [UIColor colorWithWhite:0.95f alpha:1.0f];
- (UIFont *)titleFont; // Default: [UIFont fontWithName:@"HelveticaNeue-Thin" size:20.0f];
- (UIColor *)titleColor; // Default: [UIColor blackColor];
- (CGFloat)tabBarTopViewHeight; //Default value: 0.0f
- (UIView *)tabBarTopView; //Default: nil
- (BOOL)isProgressiveTabBar; //Default value: YES
委托方法报告在标签页面视图控制器中发生的事件。
- (void)tabPager:(GUITabPagerViewController *)tabPager willTransitionToTabAtIndex:(NSInteger)index;
- (void)tabPager:(GUITabPagerViewController *)tabPager didTransitionToTabAtIndex:(NSInteger)index;
- (void)reloadData;
- (NSInteger)selectedIndex;
- (void)selectTabbarIndex:(NSInteger)index animation:(BOOL)animation;
reloadData
将刷新标签页面视图控制器的内容。请确保在重新加载内容之前提供数据源。
selectedIndex
将返回当前选中标签的索引。
selectTabbarIndex:animation:
将以编程方式切换到选中视图控制器