Latest 1.0
Homepage https://github.com/HeDong1117/UITableViewBlock
License MIT
Platforms ios 7.0, requires ARC
Authors

UITableView代理和数据源方法都可使用Block方式调用.
宝宝们再也不用担心一不小心忘记设置(tableView.dataSource = self和tableView.delegate = self)或者忘记遵循<UITableViewDataSource, UITabBarDelegate>协议带来的种种烦恼!
避免使用UITableViewDataSource和UITabBarDelegate的API带来的代码分块不方便集中式查找和修改,多个tableView集中在一起逻辑复杂.

可以使用Pod install
platform :ios, ‘7.0’
target :’The project name’ do
pod ‘UITableViewBlock’
end

- (void)setTestTableViewContent {
// UITableView三大基本方法
[[[self.testTableView hd_numberOfSectionsInTableViewBlock:^NSInteger(UITableView * _Nonnull tableView) {
return 2;
}] hd_tableViewNumberOfRowsInSectionBlock:^NSInteger(UITableView * _Nonnull tableView, NSInteger section) {
return 3;
}] hd_tableViewCellForRowAtIndexPathBlock:^UITableViewCell * _Nonnull(UITableView * _Nonnull tableView, NSIndexPath * _Nonnull indexPath) {
static NSString *const cellID = @"cellID";
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
cell.textLabel.text = @"textLabel";
cell.detailTextLabel.text = @"detailTextLabel";

return cell;
}];

// 组头尾标题
[[self.testTableView hd_tableViewTitleForHeaderInSectionBlock:^NSString * _Nonnull(UITableView * _Nonnull tableView, NSInteger section) {
return @"You";
}] hd_tableViewTitleForFooterInSectionBlock:^NSString * _Nonnull(UITableView * _Nonnull tableView, NSInteger section) {
return @"Me";
}];

//  避免Block循环引用!!!
//  __weak typeof(self) weakSelf = self;
//  __strong typeof(weakSelf) strongSelf = weakSelf;
__weak typeof(self) weakSelf = self;
[self.testTableView hd_tableViewDidSelectRowAtIndexPathBlock:^(UITableView * _Nonnull tableView, NSIndexPath * _Nonnull indexPath) {
__strong typeof(weakSelf) strongSelf = weakSelf;
if (!strongSelf) {
return;
}

NSLog(@"S = %@", indexPath);
[self.testTableView deselectRowAtIndexPath:indexPath animated:YES];
TestViewController *t = [[TestViewController alloc] init];
[self.navigationController pushViewController:t animated:YES];
}];
}
[downloadTask resume];

Latest podspec

{
    "name": "UITableViewBlock",
    "version": "1.0",
    "summary": "A UITableView Block",
    "homepage": "https://github.com/HeDong1117/UITableViewBlock",
    "license": "MIT",
    "authors": {
        "HeDong": "[email protected]qq.com"
    },
    "source": {
        "git": "https://github.com/HeDong1117/UITableViewBlock.git",
        "tag": "1.0"
    },
    "platforms": {
        "ios": "7.0"
    },
    "requires_arc": true,
    "source_files": "UITableViewBlock/Category/*.{h,m}"
}

Pin It on Pinterest

Share This