ABTableViewCellController 1.0.0

ABTableViewCellController 1.0.0

测试已测试
多语言语言 Obj-CObjective C
许可协议 MIT
发布上次发布2015年9月

Alex Bumbu 维护。



  • 作者:
  • Alex Bumbu

一种简单易用的方法来处理更新单元格相关代码,位于 tableView:cellForRowAtIndexPath: 之外。特别适用于您需要处理多个单元格类型时。

集成

  • 通过 Cocoapods 安装(只需添加 pod 'ABTableViewCellController', '~> 1.0'),或克隆此仓库并将 ABTableViewCellController 文件夹的内容拖放到项目中。
  • 要使用它,您需要创建一个实现 ABTableViewCellController 协议的单元格控制器对象
#import "ABTableViewCellController.h"

@interface CustomCellController : NSObject <ABTableViewCellController>

@end


@implementation CustomCellController

- (void)updateCell:(UITableViewCell *)cell withObject:(NSDictionary *)object {
    cell.textLabel.text = [object objectForKey:@"name"];
    cell.detailTextLabel.text = [object objectForKey:@"email"];
}

@end
  • 现在,您只需实例化单元格控制器并将其分配给单元格,然后更新单元格。这样您就可以使用了!
#import "UITableViewCell+CellController.h"
#import "CustomCellController.h"

@implementation YourViewController {
    CustomCellController *_cellController;
}

- (instancetype)init {
    self = [super init];
    if (self) {
        _cellController = [[CustomCellController alloc] init];
    }

    return self;
}

#pragma mark UITableViewDataSource Methods

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *identifier = @"DefaultCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
        cell.cellController = _cellController;
    }

    [cell updateCellWithObject:[_dataSource objectAtIndex:indexPath.row]];

    return cell;
}

@end

兼容性

  • iOS 7 和 iOS 8

评分

ABTableViewCellController 由 Alex Bumbu 创建。

许可协议

ABTableViewCellController 在 MIT 许可协议下提供。有关更多信息,请参阅 LICENSE 文件。如无归属,请联系 Alex Bumbu.