Latest 0.0.3
Homepage https://github.com/cocbin/CBCategoryView
License MIT
Platforms ios 8.0
Authors

简介

一个简单易用的选项卡管理器视图。允许横向滚动选择选项卡,也可以点击右边菜单展开以选择选项卡。
主要特点是,通过适配器适配子视图控制器。该组件会通过传进的数据,向主视图控制器请求子视图控制器,并传递必要的参数。

预览

demo

用法

通过cocoapods下载

pod 'CBCategoryView', '~> 0.0.3'

导入库

#import <CBCategoryView/CBCategoryView.h>

使用

CBCategoryView * categoryView = [[CBCategoryView alloc] initWithPosition:CGPointMake(0,64) andHeight:30];
[self.view addSubview:categoryView];
categoryView.controller(self)
    .data(self.category)
    .decodeData(^(NSDictionary * data){
       return data[@"name"];
    })
    .childControllerAdapter(^(NSUInteger index,NSDictionary * data){
       ChildViewController * childViewController = [[ChildViewController alloc] init];
       childViewController.viewModel = [[ChildViewModel alloc]init];
       childViewController.viewModel.categoryId = index;
       return childViewController;
    })
    .reloadData();
  • controller(UIViewController *controller)

绑定controller,用于绑定子视图控制器,和切换子视图控制器

  • data(NSArray* data)

绑定数据,可以是一个字符串数组,也可以是一个model数组

  • decodeData(^ (id *data))

如果绑定的data不是字符串数组,需要用decodeData将数据转换成字符串。传递过来的参数是数组中的一个,可以从该元素中取出要显示在组件上的字符串即可,以返回值的形式传递回去。
如:

//data绑定的是如下数据
//@[@{@"name":@"xxxxx",@"id:"xxxx"},@{@"name":@"xxxxx",@"id:"xxxx"},...]
//
.decodeData(^ (NSDictionary * data){
    return data[@"name"];
})
  • childControllerAdater(^ (NSInterger index,NSDictionary * data))

用于获取子视图控制器,当选择某一类别时,程序会调用该block,获取指定的子视图,并显示在界面上。
传递的参数包括当前选择类别的下标和数据,返回一个UIViewController。
这里已经做好了缓存,不需要担心性能的问题。

  • reloadData()
    当重新绑定数据的时候,调用reloadData方法,用于刷新数据。

Latest podspec

{
    "name": "CBCategoryView",
    "version": "0.0.3",
    "summary": "A category view for ios",
    "description": "u5b9eu4f8bu5316 CBCategoryViewnn```nCBCategoryView * categoryView = [[CBCategoryView alloc] initWithPosition:CGPointMake(0,64) andHeight:40];n[self.view addSubview:categoryView];n```nnu6dfbu52a0u6570u636enn```n[categoryView dataSource:self.category];n//self.category is a string arrayn```nnu4f7fu7528blocku8bbeu7f6eu5f53u5207u6362tabu65f6u4f7fu7528u7684ViewControllernn```n[categoryView controller:selfn      getChildViewController:^(CBCategoryView * cbCategoryView, NSInteger index) {n          ChildViewController * childViewController = [[ChildViewController alloc] init];n          childViewController.param = self.category[(NSUInteger) index];n          return childViewController;n      }];n```",
    "homepage": "https://github.com/cocbin/CBCategoryView",
    "license": "MIT",
    "authors": {
        "Cocbin": "[email protected]"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/cocbin/CBCategoryView.git",
        "tag": "0.0.3"
    },
    "source_files": "CBCategoryView/CBCategoryView/*.{h,m}"
}

Pin It on Pinterest

Share This