Iphone 将TTTableView中的自定义单元格实现为TTViewController

Iphone 将TTTableView中的自定义单元格实现为TTViewController,iphone,objective-c,ios,three20,Iphone,Objective C,Ios,Three20,我有一个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 =

我有一个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>
@接口测试控制器:TTViewController
但似乎-(类)tableView:(UITableView*)tableView cellClassForObject:(id)对象未被调用。。。我遗漏了什么?

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

太棒了@aporat,它有效!!!!非常感谢!!!!但是有一个新问题,+(CGFloat)tableView:(UITableView*)tableView rowHeightForObject:(id)未调用自定义单元格中的项,但是调用CustomTTTableSubtitleItem的其他数据源类可以将rowHeightForObject用于此工作。。。我在init方法中编写了[self.items addObject:[CustomTTTableSubtitleItem…..这是问题吗?单元格项目之间是否需要可变的行高?您可以使用self.tableView.rowHeight=70.0f设置所有单元格的行高;