我有TTViewController,其中包含一个TTTableView和一个初始化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)对象没有被调用...我错过了什么吗?

最佳答案

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

关于iphone - 在TTTableView中将自定义单元实现到TTViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7569593/

10-11 20:15