pod引入
pod'JXCategoryView'? ? ? ? ? ? ? ? #? 首頁樣式 列表分類
pod'JXPagingView/Pager', '~> 1.1.19'? #? 首頁樣式 列表輪播
實現
controller.m? 實例化 列表、表頭
引入代理
JXPagerViewDelegate,JXCategoryViewDelegate ,JXPagerMainTableViewGestureDelegate
@property (nonatomic, strong) JXPagerView *pagingView;
@property (nonatomic, strong) JXCategoryTitleView *categoryView;
? ?self.categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(20, 10, 320, 60)];
? ? self.categoryView.layer.cornerRadius = 14;
? ? self.categoryView.titles = @[@"衣服", @"包包", @"化妝品"];
? ? self.categoryView.backgroundColor = [UIColor whiteColor];
? ? self.categoryView.delegate = self;
? ? self.categoryView.titleSelectedColor = [UIColor Color];//選中顏色
? ? self.categoryView.titleColor = [UIColor blackColor];//未選中顏色
? ? self.categoryView.titleFont = [UIFont boldSystemFontOfSize:22];//選中字體大小
? ? self.categoryView.titleSelectedFont = [UIFont boldSystemFontOfSize:16];//未選中字體大小
? ? self.categoryView.titleColorGradientEnabled = YES;
? ? self.categoryView.titleLabelZoomEnabled = YES;
? ? self.categoryView.titleLabelZoomEnabled = YES;
//????titleview下面的線
????JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
? ? lineView.indicatorColor = kNColorPink;
? ? lineView.indicatorWidth=30;
? ? self.categoryView.indicators = @[lineView];
? ? _pagingView = [[JXPagerView alloc] initWithDelegate:self];
? ? _pagingView.mainTableView.gestureDelegate = self;
? ? [self.view addSubview:self.pagingView];
? ? //FIXME:如果和JXPagingView聯動
? ? //'JXPagingView/Pager', '~> 1.1.19'? 高版本沒有此屬性
? ? self.categoryView.contentScrollView = self.pagingView.listContainerView.collectionView;
? ? self.navigationController.interactivePopGestureRecognizer.enabled = (self.categoryView.selectedIndex == 0);
? ? [self.view addSubview:self.categoryView];
代理
#pragma mark - JXPagingViewDelegate
- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
????HomePageHeaderView*headerView = [[HomePageHeaderView alloc] initWithFrame: CGRectMake(0, 10, 320,200)];
? ? return?headerView;???? //懸浮表頭的上面部分在這里實例化
}
- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
? ? return 200;?????//懸浮表頭的上面部分? 高度
}
- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
? ? return?60;? ?????//懸浮表頭? 高度
}
- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
? ? return??self.categoryView;?????//懸浮表頭?
}
- (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView {
? ? return?3;????????//列表數量? ?=? ?懸浮表頭title數量
}
?//實例列表?
- (id<JXPagerViewListViewDelegate>)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index {
? ? RedListView *list = [[RedListView alloc] init];
? ??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 {
? ? //禁止scrollView左右滑動的時候,上下和左右都可以滾動?
? ? //?self.headerView? 即?懸浮表頭的上面部分在這里實例化
????//HomePageHeaderView*headerView = [[HomePageHeaderView alloc] initWithFrame: CGRectMake(0, 10, 320,200)];?? ? if (otherGestureRecognizer == self.headerView.scrollView.panGestureRecognizer) {
? ? ? ? returnNO;
? ? }
? ? return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]];
}