Latest 0.3.1
Homepage https://github.com/sunhua163/PageSegment
License MIT
Platforms ios 8.0, requires ARC
Frameworks UIKit
Authors

需求:多页面切换
网上有很多框架都号称最牛X,但有些居然用scrollView去写我也是醉了,还辣么多star ……
看到这里我就不能忍了,🍎明明提供了pageViewcontroller好伐,且控制器丢在里面是有生命周期的 。。。
而且,很多框架定制化都太高了,我现在也遇到了这个问题,之前顶部按钮上面只有按钮,但这次每个item右上角都有可能出现小红点 。。。
就一个这需求我需要改动很多,所以这次写的时候我开发了所有实现UI的方法,以下是实现逻辑
👇 👇 👇 👇 👇 👇

EnumPageController
 普通的控制器,内包含了 PageViewController,创建此控制器必须要实现 EnumPageControllerDelegate 协议中的两个方法,
 用来注册顶部item,因为前面我也提到,框架要确保item样式可自定义创建的
 EnumPageController 提供了三种类型的top栏,TopBlind、TopNaviBar、TopSashWindow,其中 TopNaviBar 放在 naviBar
 中,作为titleView展示给客户,TopBlind和TopSashWindow的区别在于,如果传入的控制器中有ScrolleView或者TableView的话TopSashWindow类型
 将会使得TopSegmentEnumView跟随用户手滑隐藏或显示,注意:选择TopSashWindow的前提是,控制器中的tableview或scrolleView是通过添加自动
 约束添加的,FastConstraints 类将很好的帮助添加约束
TopSegmentEnumView
 EnumPageController的顶部栏,内部含有 collectionView,item
PageSwitchAgent
 这个类是专门给各位客官打的样,可以直接用,也可以自己建一个符合自身需求的顶部样式,作为代理传入PageViewController中,运行起来
TopEnumCollectionCell TopSegmentConfigModel
 TopEnumCollectionCell 是我默认实现的顶部cell样式,TopSegmentConfigModel可以更改关于顶部item间距 
 以及item显示title等参数的对象

推荐Pod方式

 pod 'PageSegment'

运行示例

NSMutableArray <UIViewController >controllers = [NSMutableArray array];

for (NSUInteger i = 0; i < 3; i ++) {
    UIViewController *controller = [[UIViewController alloc] init];
    controller.title = [NSString stringWithFormat:@"第%ld个",(long)i+1];
    controller.view.backgroundColor = randomColor;

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 50, 100, 30)];
    label.text = controller.title;
    [controller.view addSubview:label];
    [controllers addObject:controller];
}
// 2.实现 EnumPageController init方法且传入实现了 EnumPageControllerDelegate 的对象
// 提供默认 PageSwitchAgent 对象,陛下可以观察 PageSwitchAgent 中实现的方式自定义对象传入也可 ^_^
PSEnumPageController *controller = [[PSEnumPageController alloc] initWithControllers:controllers autoStyle:[[PSPageSwitchAgent alloc] init] showTopViewType:TopSashWindow];

[self.navigationController pushViewController:controller animated:YES];

Latest podspec

{
    "name": "PageSegment",
    "version": "0.3.1",
    "summary": "A pages control tool.",
    "description": "u8fd9u662fu4e00u4e2au5173u4e8eu627fu8f7du591au4e2au9875u9762u7684u805au5408u9875uff0cu5e76u4e14u53efu4ee5u81eau5b9au4e49topu680fu6bcfu4e2aitemu7684u6837u5f0f",
    "homepage": "https://github.com/sunhua163/PageSegment",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "sunhua": "[email protected]"
    },
    "source": {
        "git": "https://github.com/sunhua163/PageSegment.git",
        "tag": "0.3.1"
    },
    "source_files": [
        "Classes",
        "PageSegment/PageEnumu6846u67b6/**/*.{h,m}"
    ],
    "resources": "PageSegment/PageEnumu6846u67b6/**/*.{xib}",
    "resource_bundles": {
        "PageSegment": [
            "PageSegment/PageEnumu6846u67b6/**/*.{xib}"
        ]
    },
    "exclude_files": "Classes/Exclude",
    "frameworks": "UIKit",
    "prefix_header_contents": [
        "#import ",
        "#import "
    ],
    "requires_arc": true,
    "platforms": {
        "ios": "8.0"
    }
}

Pin It on Pinterest

Share This