我有TTViewController包含一个TTTableView和init TTTableView如下:
- (void)loadView{
appTableView = [[TTTableView alloc] initWithFrame:CGRectMake(10, 20, self.view.width - 20, (self.view.height - 44 - 49)/2 - 40)];
appTableView.backgroundColor = [UIColor clearColor];
appTableView.delegate = self;
appTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[self.view addSubview:appTableView];
}
并在
- (void)requestDidFinishLoad:(TTURLRequest*)request {
appTableView.dataSource = [TTListDataSource dataSourceWithObjects:
[CustomTTTableSubtitleItem itemWithTitle:result.resourceName text:textCombine ],nil];
}
我编码了这个:
- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object {
if ([object isKindOfClass:[CustomTTTableSubtitleItem class]]) {
NSLog(@"here");
return [CustomTTTableSubtitleItemCell class];
}
else {
return [self tableView:tableView cellClassForObject:object];
}
}
当然我添加了协议
@interface TestController : TTViewController<TTTableViewDelegate,TTTableViewDataSource>
但似乎 - (Class)tableView:(UITableView *)tableView cellClassForObject:(id)对象不被调用...我错过了什么?
答案 0 :(得分:1)
- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object
是一个TTTableViewDataSource函数,因此您必须将TTListDataSource扩展为您自己的数据源类,并在那里覆盖此函数,而不是在TTViewController下。
在TTViewController中,创建自定义数据源:
///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)requestDidFinishLoad:(TTURLRequest*)request {
self.dataSource = [[[YourDataDataSource alloc]
initWithResults:results] autorelease];
}
并在您的自定义TTTableViewDataSource中有- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object
自定义函数