Latest 0.3.1
Homepage https://github.com/faimin/ZDTableViewBinding
License MIT
Platforms ios 8.0, requires ARC
Dependencies ReactiveObjC
Frameworks Foundation, UIKit
Authors

License
Platform
Language
ZDTableViewBinding
ZDTableViewBinding
ZDTableViewBinding
ZDTableViewBinding
ZDTableViewBinding

简介:

ZDTableViewBinding是利用ReactiveCocoa自动分发tableView的数据并计算高度且缓存的工具,支持headerfooter

ZDTableViewBinding 用法:

主要的就一个实例方法和一个类方法

+ (instancetype)bindingHelperForTableView:(__kindof UITableView *)tableView
                             multiSection:(BOOL)multiSection
                         dataSourceSignal:(__kindof RACSignal *)dataSourceSignal
                              cellCommand:(nullable RACCommand *)cellCommand
                      headerFooterCommand:(nullable RACCommand *)headerFooterCommand

传参数之前,需要把cellsection包装成cellViewModelsectionViewModel,监听 source 数据,然后把sourceSignal扔给ZDTableViewBindingHelper,剩下的事情就不用管了。

cell 和 section 中的控件的响应事件会通过外面的command进行操作,比如,当footer上的button被点击时,执行RACCommandexecute:方法。

- (IBAction)bottomButtonAction:(UIButton *)sender
{
    NSLog(@"tap footer button");
    [self.headerFooterCommand execute:RACTuplePack(sender, self.sectionModel)];
}

然后bindingHelper的对应的command执行,你可以在tuple中参数设置指定的 key 来判断到底是哪个控件传过来的事件,然后再进行对应的处理操作。

如果想单独执行tableViewDelegate的某个方法,则需要设置delegate,并实现相关协议。


Installation with CocoaPods

Add the following line to your Podfile.

pod 'ZDTableViewBinding'

Then, run the following command:

$ pod install

License

ZDTableViewBinding is under an MIT license. See the LICENSE file for more information.

Latest podspec

{
    "name": "ZDTableViewBinding",
    "version": "0.3.1",
    "summary": "u4f7fu7528`ReactiveObjC`u7ed1u5b9au5904u7406tableViewu7684u6570u636e,u5e76u5229u7528`UITableView+FDTemplateLayoutCell`u8ba1u7b97tableViewCellu7684u9ad8u5ea6",
    "homepage": "https://github.com/faimin/ZDTableViewBinding",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Zero.D.Saber": "[email protected]"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/faimin/ZDTableViewBinding.git",
        "tag": "0.3.1"
    },
    "requires_arc": true,
    "module_name": "ZDTableViewBinding",
    "frameworks": [
        "Foundation",
        "UIKit"
    ],
    "dependencies": {
        "ReactiveObjC": []
    },
    "subspecs": [
        {
            "name": "ZDProtocols",
            "source_files": "ZDTableViewBinding/ZDProtocols/*.h"
        },
        {
            "name": "ZDViewModels",
            "source_files": "ZDTableViewBinding/ZDViewModels/*.{h,m}",
            "dependencies": {
                "ZDTableViewBinding/ZDProtocols": []
            }
        },
        {
            "name": "ZDBinding",
            "source_files": "ZDTableViewBinding/ZDBinding/*.{h,m}",
            "dependencies": {
                "ZDTableViewBinding/ZDProtocols": [],
                "ZDTableViewBinding/ZDViewModels": [],
                "UITableView+FDTemplateLayoutCell": [
                    "~> 1.6"
                ]
            }
        },
        {
            "name": "ZDBaseViews",
            "source_files": "ZDTableViewBinding/ZDBaseViews/*.{h,m}",
            "dependencies": {
                "ZDTableViewBinding/ZDProtocols": [],
                "ZDTableViewBinding/ZDViewModels": []
            }
        }
    ]
}

Pin It on Pinterest

Share This