• Stars
    star
    138
  • Rank 264,508 (Top 6 %)
  • Language
    Objective-C
  • Created almost 8 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

iOS 仿照今日头条滚动列表

当前为老版本,新版本请移步XLPageViewController

XLSlideSwitch

显示效果:

样式 正常显示标题 在NavigationBar上显示标题
标准样式
Segmented样式

原理简介:

顶部的标题栏是利用UICollectionview实现的;底部视图控制器的切换是利用UIPageViewController实现的。
最大化的优化内存的使用,每个ChildViewController都是随着滚动加载的,避免了同时加载引起的UI卡顿。

使用方法:

1、创建数据源:titles、viewControllers

//要显示的标题
NSArray *titles = @[@"今天",@"是个",@"好日子",@"心想的",@"事儿",@"都能成",@"明天",@"是个",@"好日子",@"打开了家门",@"咱迎春风",@"~~~"];
//创建需要展示的ViewController
NSMutableArray *viewControllers = [NSMutableArray new];
for (int i = 0 ; i<titles.count; i++) {
    TestViewController *vc = [TestViewController new];
    [viewControllers addObject:vc];
}

2、创建滚动视图

_slideSwitch = [[XLSlideSwitch alloc] initWithFrame:CGRectMake(0, 64, self.view.bounds.size.width, self.view.bounds.size.height - 64) Titles:titles viewControllers:viewControllers];
 //设置代理
_slideSwitch.delegate = self;
//设置按钮选中和未选中状态的标题颜色
_slideSwitch.itemSelectedColor = RedColor;
_slideSwitch.itemNormalColor = GrayColor;

标题显示在ViewController中:

[_slideSwitch showInViewController:self];

标题显示在NavigationBar中:

[_slideSwitch showInNavigationController:self.navigationController];

3、代理方法

-(void)slideSwitchDidselectTab:(NSUInteger)index{
    NSLog(@"切换到了第 -- %zd -- 个视图",index);
}

4、辅助功能

1、设置标题横向间距

_slideSwitch.customTitleSpacing = 60;

2、设置Segmented横向缩进

_slideSwitch.horizontalInset = 50;

3、设置更多按钮

_slideSwitch.moreButton = [self moreButton];
- (UIButton *)moreButton {
    UIButton *button = [[UIButton alloc] init];
    [button setImage:[UIImage imageNamed:@"channelAdd"] forState:UIControlStateNormal];
    [button setImageEdgeInsets:UIEdgeInsetsMake(8, 8, 8, 8)];
    return button;
}

4、手动设置选中位置

_slideSwitch.selectedIndex = 3;

个人开发过的UI工具集合 XLUIKit

More Repositories

1

XLUIKit

iOS UI工具集
1,355
star
2

XLCardSwitch

iOS 利用余弦函数特性实现可以居中放大的图片浏览工具
Swift
391
star
3

XLPageViewController

一个开放、高度可定制化的分页视图控制器
Objective-C
371
star
4

XLChannelControl

iOS 仿腾讯新闻客户端的频道管理功能
Objective-C
259
star
5

XLPlayButton

爱奇艺、优酷的播放/暂停按钮动画效果
Objective-C
234
star
6

XLImageViewer

iOS 仿照今日头条的图片浏览工具。
Objective-C
164
star
7

XLBubbleTransition

iOS ViewController间切换的转场动画
Objective-C
137
star
8

XLSlideMenu

iOS 仿QQ的左右抽屉效果
Objective-C
128
star
9

XLPaymentHUD

iOS 支付宝支付动画
Objective-C
117
star
10

XLCircleProgress

iOS 圆环进度指示器
Objective-C
111
star
11

XLFoldClock

翻页时钟
Objective-C
97
star
12

XLBallLoading

iOS 利用贝塞尔曲线实现的加载动画
Objective-C
67
star
13

XLWaveProgress

iOS 波浪式的进度指示器
Objective-C
51
star
14

XLTieBaLoading

iOS 仿照百度贴吧的灌水效果
Objective-C
50
star
15

XLDotLoading

iOS 新浪微博红包加载动画
Objective-C
31
star
16

XLDouYinLoading

抖音加载动画
Objective-C
31
star
17

XLRefresh

iOS 下拉刷新工具
Objective-C
25
star
18

XLClock

锤子时钟
Objective-C++
22
star
19

XLCycleCollectionView

iOS 无限循环的轮播图
Objective-C
21
star
20

XLZoomHeader

下拉放大背景图的顶部视图,适用于UIScrollView及其子类
Objective-C
15
star
21

XLUIFont

iOS 系统字体预览
Objective-C
14
star
22

XLGesturePassword

QQ 手势密码
Objective-C
12
star
23

XLNavigationBar

An navigationBar appearance config tool.
Objective-C
5
star
24

iOSReverseStudy

iOS逆向学习
Objective-C
3
star
25

mengxianliang.github.io

个人主页仓库
HTML
1
star
26

AlgorithmsNotes

保存算法记录
Swift
1
star
27

PublicClassNote

公开课学习笔记
Objective-C
1
star