XXPageController
分页菜单加载控制器XXPageMenuController。提供了多种不同的分页动态展示效果。
*2018年7月6日更新
===================================================================
效果图
一. 安装
CocoaPods
pod 'XXPageController' #iOS9 and later
手动安装
将项目内的
XXPageMenuController
文件夹手动拖入项目,导入头文件`#import "XXPageMenuController.h"Jaywii`
二. 使用示例 使用方法
你只需要在需要加载分页控制器的前一页进行以下操作
XXPageMenuController *pageVc = [[XXPageMenuController alloc] initWithTitles:@[@"QQ",@"旺旺",@"微信",@"腾讯",@"阿里",@"天猫",@"淘宝",@"大姨妈"] controllersClass:@[[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class]] onNavigationBar:YES];
[self.navigationController pushViewController:pageVc animated:YES];
在实际项目中使用时,可以灵活设置各属性
- (XXPageMenuController *)menuController {
if (!_menuController) {
_menuController = [[XXPageMenuController alloc] initWithTitles:self.pageTitles controllers:self.pageControllers onNavigationBar:NO];
//_menuController.lineColors = @[UIColorFromRGB(0x858899),FN_Blue_Color];
_menuController.lineColor = FN_Blue_Color;
_menuController.lineHeight = 4;
_menuController.lineStaticWidth = 6;
_menuController.titleColor = UIColorFromRGB(0x858899);
_menuController.titleSelectedColor = UIColorFromRGB(0x333333);
_menuController.titleFont = FNMediumFontSize(15);
_menuController.pageBarBgColor = [UIColor whiteColor];
_menuController.pageBarHeight = pageBarHeight;
_menuController.lineWidthType = LineWidthTypeStaticShort; ///<下划线长度取值类型
_menuController.lineScrollType = LineScrollTypeDynamicAnimation; ///<下划线在条目切换时的动态表现类型
_menuController.pageCellWidthType = PageCellWidthTypeWidthByStaticCount; ///<分页条目 cell 宽度取值类型
_menuController.pageTitleFontChangeType = PageTitleFontChangeTypeScrollEndAnimation; ///<分页滑动时标题字体大小改变方式
//因为这里是将pageMenuController添加到ParentController(self类)上的,所以要为pageMenuController设置父视图控制器
//[_menuController setSuperViewController:self];
}
return _menuController;
}
Viewcontroller
类的didSelectRowAtIndexPath:
方法内
PS:展示所有不同方式的代码都在demo中的-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UIViewController *pageVc;
switch (indexPath.row) {
case 0:
{
pageVc = [[XXPageMenuController alloc] initWithTitles:@[@"QQ",@"旺旺",@"微信",@"腾讯",@"阿里",@"天猫",@"淘宝",@"大姨妈"] controllersClass:@[[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class],[PageCell2Controller class]] onNavigationBar:YES];
}
break;
case 1:
{
pageVc = [[XXPageMenuController alloc] initWithTitles:@[@"QQ",@"旺旺",@"微信",@"腾讯",@"阿里",@"天猫",@"淘宝",@"大姨妈"] controllersClass:@[[PageCell1Controller class],[PageCell1Controller class],[PageCell1Controller class],[PageCell1Controller class],[PageCell1Controller class],[PageCell1Controller class],[PageCell1Controller class],[PageCell1Controller class]] onNavigationBar:NO];
}
break;
case 2:
{
pageVc = [[XXPageMenuController alloc] initWithTitles:@[@"QQ",@"旺旺"] controllersClass:@[[PageCell2Controller class],[PageCell2Controller class]] onNavigationBar:YES];
}
break;
default:
pageVc = [[XXPageMenuController alloc] initWithTitles:@[@"QQ",@"旺旺",@"微信"] controllersClass:@[[PageCell1Controller class],[PageCell1Controller class],[PageCell1Controller class]] onNavigationBar:NO];
break;
}
[self.navigationController pushViewController:pageVc animated:YES];
}
如有不明白之处,请参阅Demo,里面介绍得很详细。