XXPageController 0.0.7

XXPageController 0.0.7

inxx 维护。



  • 林祥兴

XXPageController

Platform License CocoaPods

分页菜单加载控制器XXPageMenuController。提供了多种不同的分页动态展示效果。

*2018年7月6日更新

https://www.jianshu.com/p/20845080a7a4

===================================================================

效果图

一. 安装

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;
}
PS:展示所有不同方式的代码都在demo中的Viewcontroller类的didSelectRowAtIndexPath:方法内
-(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,里面介绍得很详细。