Реализация пользовательской ячейки в TTTableView для TTViewController - PullRequest
0 голосов
/ 27 сентября 2011

У меня 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) объект не будет вызван ... что-то, что я пропустил?

1 Ответ

1 голос
/ 28 сентября 2011

- (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 пользовательская функция

...