我在使用TTTableViewController和自定义单元格时遇到了困难?为了使用自定义单元格,我可以使用UITableViewCell还是必须子类化TTTableViewCell?我如何使用TTModel?有什么好的例子可以显示所有这些吗?
答案 0 :(得分:3)
TTTableViewCell的最大问题在于它与标准的UITableViewCell和它完全不同。 UITableViewDelegate,所以你必须忘记你对UITableViewCell的了解。
简而言之,TTTableItem
类是数据容器,而TTTableItemCell
类负责显示表中的单元格。
例如,TTTableMessageItem
类包含有关消息的所有数据,例如日期,标题和正文。 TTTableMessageItemCell
类包含单元格及其布局的所有UI元素。
我发现它比标准UITableViewController
更灵活,因为您可以轻松更改单元格类型。
如果要添加自己的自定义类类型,则需要定义新的TTTableItem
子类和新的TTTableItemCell
子类。
HelloTableItem.h - 包含单元格的数据:
@interface HelloTableItem : TTTableLinkedItem {
NSString *_title;
NSString *_subtitle;
}
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;
+ (id)itemWithTitle:(NSString *)title
subtitle:(NSString *)subtitle;
@end
HelloTableItemCell.h - 单元格本身
@interface HelloTableItemCell : TTTableLinkedItemCell {
UILabel *_titleLabel;
UILabel *_subtitleLabel;
}
@end
HelloTableViewDataSource.m - 数据源负责添加表项并决定每种项类型使用哪种类型的单元格
- (id)init {
if (self = [super init]) {
self.items = [NSArray arrayWithObjects:
[HelloTableItem itemWithTitle:@"First" subtitle:@"Hello #1!"],
[HelloTableItem itemWithTitle:@"Second" subtitle:@"Hello #2!"],
[HelloTableItem itemWithTitle:@"Third" subtitle:@"Hello #3!"],
[HelloTableItem itemWithTitle:@"Fourth" subtitle:@"Hello #4!"],
[HelloTableItem itemWithTitle:@"Fifth" subtitle:@"Hello #5!"],
nil];
}
return self;
}
- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object {
if ([object isKindOfClass:[HelloTableItem class]]) {
return [HelloTableItemCell class];
}
return [super tableView:tableView cellClassForObject:object];
}
@end
完整的源代码可以在这里找到: http://three20.pypt.lt/custom-cells-in-tttableviewcontroller