在TTTableView中实现自定义单元格到TTViewController

时间:2011-09-27 13:03:49

标签: iphone objective-c ios three20

我有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)对象不被调用...我错过了什么?

1 个答案:

答案 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自定义函数