Latest 0.1.6
Homepage https://github.com/2360219637/CZCPageController
License MIT
Platforms ios 8.0
Authors

左右滑动组件,支持headerView

手动导入或通过 pod CZCPageController导入

1、segmentBar位于headerView底部结构:

2、segmentBar位于headerView顶部结构:

一、使用:

1、创建控制器(如CustomPageController)继承CZCPageController
#import "CZCPageController.h"
@interface ViewController : CZCPageController
@end

2、实现父类CZCPageController遵循的协议方法:

/*
 *子控制器集合
 */
- (nonnull NSArray<UIViewController<CZCScrollControllerDelegate> *> *)czc_childViewControllers;
/*
 *headerView
 */
- (UIView *)czc_headerView;
/*
 *分段选择器 
 *不显示SegmentBar则不用重载此方法,父类已经返回nil
 */
- (CZCSegmentBar *)czc_segmentBar;
/*
 *headerView的frame,
 */
- (CGRect)czc_headerViewFrame;
/*
 *分段选择器的frame, 不显示SegmentBar则不用重载此方法
 */
- (CGRect)czc_segmentBarFrame;
3、各个子控制器需要遵循CZCScrollControllerDelegate协议

新创建的子控制器遵循CZCScrollControllerDelegate协议,在.m中实现:

//@implementation 之后
@synthesize contentOffsetY;
//实现方法
- (UIScrollView *)controllerMainScrollView{
    return self.tableView;
}
//设置滑动偏移量
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    if (self.contentOffsetY) {
        self.contentOffsetY(scrollView.contentOffset.y);
    }
}

注意:

1、tableView或collectionView需要设置.bounces属性为NO

2、由于segmentBar的titles可能有服务端返回,有延迟,因此在数据返回之后需要调用- (void)czc_beginRefresh方法

二、HeaderView位置在Segment下方

self.segmentBarLocation = CZCSegmentBarLocationTop;

效果图:

三、增加下拉刷新

1、有头部整体下拉刷新:

self.mainScrollView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadData)];

整体下拉刷新

2、没头部各个子控制器下拉刷新

设置.bounces = YES;

self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadData)];

四、其他功能

1、设置mainScrollView的contentOffset.y不能小于0

则在子类CustomPageController中

- (void)czc_scrollViewDidScroll:(CZCCustomScrollView *)scrollView{
    [super czc_scrollViewDidScroll:scrollView];
    if (self.mainScrollView.contentOffset.y < 0) {
        self.mainScrollView.contentOffset = CGPointZero;
    }
}
2、segmentBar的titles有更新
self.segmentTitles = @[...]; //新的数据
[self czc_beginRefresh]; //重新刷新

Latest podspec

{
    "name": "CZCPageController",
    "version": "0.1.6",
    "summary": "u5de6u53f3u6ed1u52a8u7ec4u4ef6",
    "homepage": "https://github.com/2360219637/CZCPageController",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "[email protected]": "[email protected]"
    },
    "source": {
        "git": "https://github.com/2360219637/CZCPageController.git",
        "tag": "0.1.6"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "CZCPageController/*.{h,m}",
    "public_header_files": "CZCPageController/*.h",
    "subspecs": [
        {
            "name": "Tools",
            "source_files": "CZCPageController/Tools/*.{h,m}",
            "public_header_files": "CZCPageController/Tools/*.h"
        },
        {
            "name": "GGJSegBar",
            "source_files": "CZCPageController/GGJSegBar/*.{h,m}",
            "public_header_files": "CZCPageController/GGJSegBar/*.h",
            "dependencies": {
                "CZCPageController/Tools": []
            }
        }
    ]
}

Pin It on Pinterest

Share This