2011-09-27 58 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我知道了!謝謝!!!! –