测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可协议 | MIT |
发布最后发布 | 2015年4月 |
由 recruit-mp 维护。
RMPScrollingMenuBarController
具有可滚动的菜单栏和多个视图控制器。
您可以通过滑动屏幕或滚动菜单来切换视图控制器,这与 UITabBarController
的管理方式类似。
RMPScrollingMenuBarController 通过 CocoaPods 提供。
要安装它,只需将以下行添加到您的 Podfile 中
pod "RMPScrollingMenuBarController"
要运行示例项目,请克隆仓库,并首先从 Example 目录运行 pod install
。
设置如下
RMPScrollingMenuBarController* menuController = [[RMPScrollingMenuBarController alloc] init];
menuController.delegate = self;
NSArray* viewControllers = @[vc1, vc2, vc3, vc4, vc5];
[menuController setViewControllers:viewControllers];
UINavigationController* naviController;
naviController = [[UINavigationController alloc] initWithRootViewController:menuController];
委托方法如下
- (RMPScrollingMenuBarItem*)menuBarController:(RMPScrollingMenuBarController *)menuBarController
menuBarItemAtIndex:(NSInteger)index
{
RMPScrollingMenuBarItem* item = [[RMPScrollingMenuBarItem alloc] init];
item.title = [NSString stringWithFormat:@"Title %02ld", (long)(index+1)];
return item;
}
- (void)menuBarController:(RMPScrollingMenuBarController *)menuBarController
willSelectViewController:(UIViewController *)viewController
{
NSLog(@"will select %@", viewController);
}
- (void)menuBarController:(RMPScrollingMenuBarController *)menuBarController
didSelectViewController:(UIViewController *)viewController
{
NSLog(@"did select %@", viewController);
}
- (void)menuBarController:(RMPScrollingMenuBarController *)menuBarController
didCancelViewController:(UIViewController *)viewController
{
NSLog(@"did cancel %@", viewController);
}
您可以根据以下内容自定义菜单栏:
RMPScrollingMenuBarController* menuController = [[RMPScrollingMenuBarController alloc] init];
// Sets background color.
menuController.view.backgroundColor = [UIColor whiteColor];
// Sets color of indicator line which displayed under menu bar item.
menuController.menuBar.indicatorColor = [UIColor blueColor];
// Hides indicator line which displayed under menu bar item.
menuController.menuBar.showsIndicator = NO;
// Hides Separator line which displayed bottom of menu bar.
menuController.menuBar.showsSeparatorLine = NO;
此外,您还可以通过实现以下委托方法来自定义菜单栏项的按钮:
- (RMPScrollingMenuBarItem*)menuBarController:(RMPScrollingMenuBarController *)menuBarController
menuBarItemAtIndex:(NSInteger)index
{
RMPScrollingMenuBarItem* item = [[RMPScrollingMenuBarItem alloc] init];
item.title = titles[index];
// Customize appearance of menu bar item.
UIButton* button = item.button;
[button setTitleColor:[UIColor lightGrayColor]
forState:UIControlStateNormal];
[button setTitleColor:[UIColor grayColor]
forState:UIControlStateDisabled];
[button setTitleColor:[UIColor greenColor]
forState:UIControlStateSelected];
return item;
}
启用无限分页模式,如下所示:
RMPScrollingMenuBarController* menuController = [[RMPScrollingMenuBarController alloc] init];
menuController.menuBar.style = RMPScrollingMenuBarStyleInfinitePaging;
如果您有功能请求或错误报告,请通过发送拉取请求或创建新问题来帮忙。
Yoshihiro Kato, [email protected]
Recruit Marketing Partners Co.,Ltd. [email protected]
RMPScrollingMenuBarController 可在 MIT 许可协议下使用。