Giter Site home page Giter Site logo

xlslideswitch's Introduction

当前为老版本,新版本请移步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

xlslideswitch's People

Contributors

mengxianliang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

xlslideswitch's Issues

刷新

关于和频道管理结合使用后的刷新,能加一个刷新的方法吗。

建议添加一个手势控制

我在子控制器中添加了一个可以滑动的控件,当我滑动的时候,会和父视图的滚动切换形成手势冲突,建议添加一个屏蔽手势冲突的入口。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.