// // OCExampleViewController.m // JXPagerView // // Created by jiaxin on 2018/8/27. // Copyright © 2018年 jiaxin. All rights reserved. // #import "YMGuildManagementPagingViewController.h" #import "JXCategoryView.h" #import "YMGuildManagementListViewController.h" @interface YMGuildManagementPagingViewController () @property (nonatomic, strong) JXCategoryTitleView *categoryView; @property (nonatomic, strong) NSArray *titles; @end @implementation YMGuildManagementPagingViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; self.navigationController.navigationBar.translucent = false; self.edgesForExtendedLayout = UIRectEdgeNone; _titles = @[@""]; _userHeaderView = [[YMGuildManagementPagingViewTableHeaderView alloc] init]; _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, JXheightForHeaderInSection)]; self.categoryView.titles = self.titles; self.categoryView.backgroundColor = [UIColor whiteColor]; self.categoryView.delegate = self; self.categoryView.titleSelectedColor = [UIColor colorWithRed:105/255.0 green:144/255.0 blue:239/255.0 alpha:1]; self.categoryView.titleColor = [UIColor blackColor]; self.categoryView.titleColorGradientEnabled = YES; self.categoryView.titleLabelZoomEnabled = YES; self.categoryView.contentScrollViewClickTransitionAnimationEnabled = NO; JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init]; lineView.indicatorColor = [UIColor colorWithRed:105/255.0 green:144/255.0 blue:239/255.0 alpha:1]; lineView.indicatorWidth = 30; self.categoryView.indicators = @[lineView]; _pagerView = [self preferredPagingView]; self.pagerView.mainTableView.gestureDelegate = self; [self.view addSubview:self.pagerView]; self.categoryView.listContainer = (id)self.pagerView.listContainerView; //导航栏隐藏的情况,处理扣边返回,下面的代码要加上 // [self.pagerView.listContainerView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer]; // [self.pagerView.mainTableView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.navigationController.interactivePopGestureRecognizer.enabled = (self.categoryView.selectedIndex == 0); } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; self.navigationController.interactivePopGestureRecognizer.enabled = YES; } - (JXPagerView *)preferredPagingView { return [[JXPagerView alloc] initWithDelegate:self]; } - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; self.pagerView.frame = self.view.bounds; } #pragma mark - JXPagerViewDelegate - (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView { return self.userHeaderView; } - (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView { return JXTableHeaderViewHeight; } - (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView { return JXheightForHeaderInSection; } - (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView { return self.categoryView; } - (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView { //和categoryView的item数量一致 return self.categoryView.titles.count; } - (id)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index { YMGuildManagementListViewController *list = [[YMGuildManagementListViewController alloc] init]; list.title = self.titles[index]; list.isNeedHeader = self.isNeedHeader; list.isNeedFooter = self.isNeedFooter; return list; } #pragma mark - JXCategoryViewDelegate - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0); } #pragma mark - JXPagerMainTableViewGestureDelegate - (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { //禁止categoryView左右滑动的时候,上下和左右都可以滚动 if (otherGestureRecognizer == self.categoryView.collectionView.panGestureRecognizer) { return NO; } return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]; } @end