2011-09-27 57 views
0

我TTViewController包括内TTTableView和init TTTableView象下面这样:在TTTableView实现自定义单元格的TTViewController

- (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> 

但似乎 - (类)tableView:(UITableView *)tableView cellClassForObject:(id)对象不被调用...我错过了什么?

回答

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

+0

大!!!! @aporat,它的作品!非常感谢!!!!但是还有一个新问题,+(CGFloat)tableView :(UITableView *)tableView rowHeightForObject:(id)item在自定义单元格中未被调用,然而其他数据源类名为CustomTTTableSubtitleItem的人可以通过rowHeightForObject这个工作...我写了[self.items addObject:[CustomTTTableSubtitleItem ....在init方法中,是这个问题吗? –

+0

您是否需要在单元格项之间设置可变的行高?您可以使用self.tableView.rowHeight = 70.0f设置所有单元格的行高度; – aporat

+0

呵呵,你是如此该死的好伙伴! :D我知道了!谢谢!!!! –