DZRPageMenu 1.0.2

DZRPageMenu 1.0.2

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年6月

dundun 维护。



  • 作者:
  • dundun

DZRPageMenu是一个简单的分页菜单管理工具,可以实现类似网易头条的功能

目录

使用条件

iOS8.0及以上设备能够使用

描述

安装

1. 使用 CocoaPods 安装,在 Podfile 文件中写入

pod 'DZRPageMenu'

然后在终端输入

pod install

2. 如果项目没有使用 CocoaPods,则可以直接将 DZRPageMenu 文件直接拖入项目,记得勾选 Copy items if needed 选项

使用

1. 创建一个父视图控制器,该控制器继承 DZRPageMenu 类(注意:此处假设父视图控制器为 DZRSuperController

2. 在需要创建分页控制器的位置,创建 DZRSuperController

// 创建需要展示的子视图数组
NSMutableArray * childControllerArr = [NSMutableArray array];
for (int i = 0; i < 7; i++) {
    ChildViewController * childVC = [[ChildViewController alloc] init];
    [childControllerArr addObject:childVC];
}

// 创建需要的选择项, 各种选项在 DZRPageMenu.h 中有相应说明
NSDictionary * options = @{
      DZROptionMenuHeight: @(40.0),
      DZROptionItemWidth: @(60.0),
      DZROptionIndicatorWidth: @(35.0),
      DZROptionIndicatorHeight: @(2.0),
      DZROptionLeftRightMargin: @(15.0),
      DZROptionTopBottomMargin: @(10.0),
      DZROptionIndicatorTopToItem: @(30.0),
      DZROptionItemsSpace: @(5.0),
      DZROptionMenuColor: [UIColor colorWithRed:80.0/255.0 green:143.0/255.0 blue:242.0/255.0 alpha:1.0],
      DZROptionControllersScrollViewColor: [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:244.0/255.0 alpha:1.0],
      DZROptionSelectorItemTitleColor: [UIColor colorWithRed:253.0/255.0 green:140.0/255.0 blue:37.0/255.0 alpha:1.0],
      DZROptionUnselectorItemTitleColor: [UIColor colorWithRed:254.0/255.0 green:213.0/255.0 blue:48.0/255.0 alpha:1.0],
      DZROptionIndicatorColor: [UIColor colorWithRed:253.0/255.0 green:140.0/255.0 blue:37.0/255.0 alpha:1.0],
      DZROptionItemsCenter: @(YES),
      DZROptionCanBounceHorizontal: @(YES),
      DZROptionIndicatorNeedToCutTheRoundedCorners: @(YES)
    };

/**
 * 创建分页控制器
 *
 * @param frame 控制器frame
 * @param controllers 子控制器
 * @param options 设置控制器的选项
 */
DZRSuperController *superController = [[DZRPageController alloc] initWithFrame:frame
                                                                   controllers:childControllerArr
                                                                       options:options];

// 显示superController(此处是举例)
[self presentViewController: superController animated:YES completion:nil];

3. 有两个具体的协议方法可供选择性实现

/**
 * 分页菜单控制器将要把该下标的子视图控制器加载出来
 *
 * @param childController 将要加载的子视图
 * @param indexPage 子视图下标
 */
- (void)pageMenu:(UIViewController *)pageMenu willMoveTheChildController:(UIViewController *)childController atIndexPage:(NSInteger)indexPage;
/**
 * 分页菜单控制器已经把该下标的子视图控制器加载出来
 *
 * @param childController 已经加载的子视图
 * @param indexPage 子视图下标
 */
- (void)pageMenu:(UIViewController *)pageMenu didMoveTheChildController:(UIViewController *)childController atIndexPage:(NSInteger)indexPage;

版权

DZRPageMenu 根据 MIT license 条款和条件分发,本文所有权属于作者。

个人补充

DZRPageMenu 是在解读 PageMenu 源码后,作者补充改写的一个小工具,是为了个人的一个项目而设计,目前功能还很简单,待后期完善。