2011-06-26 63 views
1

我在使用TTTableViewController自定义单元格时遇到困难?为了使用自定义单元格,我可以使用UITableViewCell还是必须继承TTTableViewCell?我如何使用TTModel?有没有什么好的例子可以说明这一切?TTTableViewController与自定义单元格样本

回答

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