pujiaxin33 /JXCategoryView

A powerful and easy to use category view (segmentedcontrol, segmentview, pagingview, pagerview, pagecontrol) (腾讯新闻、今日头条、QQ音乐、网易云音乐、京东、爱奇艺、腾讯视频、淘宝、天猫、简书、微博等所有主流APP分类切换滚动视图)

★ 6,151⑂ 1,146
Objective-CCreated 2018-03-22
6,151
stars
+1+1+2
1,146
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

A powerful and easy to use category view (segmentedcontrol, segmentview, pagingview, pagerview, pagecontrol) (腾讯新闻、今日头条、QQ 音乐、网易云音乐、京东、爱奇艺、腾讯视频、淘宝、天猫、简书、微博等所有主流 APP 分类切换滚动视图)

与其他的同类三方库对比的优点:
- 使用协议封装指示器逻辑,可以随心所欲地自定义指示器效果;
- 提供更加全面丰富、高度自定义的效果;
- 使用子类化管理 cell 样式,逻辑更清晰,扩展更简单;
- 高度封装列表容器,使用便捷,完美支持列表的生命周期调用;

 Swift版本

如果你在找 Swift 版本,请点击查看 JXSegmentedView。

 效果预览

 指示器效果预览

说明 | Gif |
----|------|
LineView  |   |
LineView延长  |   |
LineView延长+偏移  |   |
LineView🌈彩虹风格  |   |
DotLineView点线效果 |   |
BallView QQ黏性红点  |   |
TriangleView 三角形底部  |   |
TriangleView 三角形顶部  |   |
BackgroundView椭圆形  |   |
BackgroundView椭圆形+阴影  |   |
BackgroundView长方形  |   |
BackgroundView遮罩有背景  |   |
BackgroundView遮罩无背景  |   |
BackgroundView渐变色  |   |
ImageView底部(小船)  |   |
ImageView背景(最佳男歌手)  |   |
ImageView滚动效果(足球)  |   |
混合使用 |   |

以下均支持上下位置切换:
JXCategoryIndicatorLineView、JXCategoryIndicatorImageView、JXCategoryIndicatorBallView、JXCategoryIndicatorTriangleView

 Cell样式效果预览

说明 | Gif |
----|------|
颜色渐变  |   |
大小缩放  |   |
大小缩放+底部锚点  |   |
大小缩放+顶部锚点  |   |
大小缩放+字体粗细  |   |
大小缩放+点击动画  |   |
大小缩放+cell宽度缩放  |   |
TitleImage_Top |   |
TitleImage_Left |   |
TitleImage_Bottom |   |
TitleImage_Right |   |
cell图文混用 |   |
Image |   |
数字 |   |
红点 |   |
多行文本 |   |
多行富文本 |   |
Cell背景色渐变  |   |
分割线 |   |

 特殊效果预览

说明 | Gif |
----|------|
数据源过少 averageCellSpacingEnabled默认为YES |   |
数据源过少 averageCellSpacingEnabled为NO |   |
SegmentedControl参考SegmentedControlViewController类 |   |
导航栏使用参考NaviSegmentedControlViewController类 |   |
嵌套使用参考NestViewController类 |   |
个人主页(上下左右滚动、header悬浮)参考PagingViewController类 更多样式请点击查看JXPagingView库 |   |
垂直列表滚动参考VerticalListViewController类 高仿腾讯视频支持UITableView,参考VerticalListTableViewController(背景色异常是录屏软件bug) |   |
| 垂直缩放(仿网易圈圈、脉脉首页)参考ScrollZoomViewController类 |  |
数据源刷新&列表数据加载参考LoadDataListContainerViewController类 |   |
上下滚动隐藏导航栏 |  |
京东首页-滚动渐变变小 |  |

 自定义效果预览

收录来自其他使用者的自定义示例,这些自定义类只在 Demo 项目里面,Pod 库并没有这些文件。所以,如果你需要使用这些自定义效果,请通过文件导入的方式。

目的:
- 参考学习如何自定义;
- 直接修改自定义示例类以快速实现自己的需求。

欢迎提 PullRequest 进行收录你的自定义效果。

| 说明 | Gif |
| ----|------|
| Spring动画指示器 |   |
| 富文本数量cell |   |
| 左右对齐指示器 |   |
| 秒杀时间线cell |   |
| 京东商品排序cell |   |
| title背景块cell |   |

 要求

- iOS 9.0+
- Xcode 9+
- Objective-C

 安装

 手动

Clone 代码,把 Sources 文件夹拖入项目,import "JXCategoryView.h" 就可以使用了。

 CocoaPods

ruby
target '' do
    pod 'JXCategoryView'
end

先执行 pod repo update,再执行 pod install。

 结构图



 使用

 JXCategoryTitleView 使用示例

1. 初始化 JXCategoryTitleView:
Objective-C
self.categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, WindowsSize.width, 50)];
self.categoryView.delegate = self;
[self.view addSubview:self.categoryView];


2. 配置 JXCategoryTitleView 的属性:
Objective-C
self.categoryView.titles = @[@"螃蟹", @"麻辣小龙虾", @"苹果"...];
self.categoryView.titleColorGradientEnabled = YES;


3. 添加指示器:
Objective-C
JXCategoryIndicatorLineView lineView = [[JXCategoryIndicatorLineView alloc] init];
lineView.indicatorColor = [UIColor redColor];
lineView.indicatorWidth = JXCategoryViewAutomaticDimensio

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON