Установка rowHeight в UITableView в viewDidAppear - PullRequest
0 голосов
/ 14 декабря 2011

Это текущий рабочий код.

Но это должно быть проще, я думаю.

Если я использую закомментированный код, я получаю неправильный размер высоты.

Есть какие-нибудь предложения?

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    TableViewCell *cell = (TableViewCell *)[[self tableView]dequeueReusableCellWithIdentifier:CellClassName];
//      TableViewCell *cell = [[[TableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellClassName] autorelease];

     if (!cell)
        {
        NSArray *topLevelItems = [cellLoader instantiateWithOwner:self options:nil];
        cell = [topLevelItems objectAtIndex:0];
        // cell = [[[TableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellClassName] autorelease];
        }

    NSLog(@"cell height %f", cell.bounds.size.height);
    [[self tableView] setRowHeight:cell.bounds.size.height] ;
}

1 Ответ

0 голосов
/ 14 декабря 2011

Да, вы можете это упростить.Просто назовите свою собственную реализацию -tableView:cellForRowAtIndexPath: и используйте ячейку, которую вы получили от этого, то есть

UITableView *table = self.tableView;
NSIndexPath *index = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [self tableView:table cellForRowAtIndexPath:index];
[table setRowHeight:cell.bounds.size.height]

Вуаля: больше нет дублирующегося кода.

В другой заметке, вы можете захотетьсделать это в -viewDidLoad или -viewWillAppear:, если ваш контроллер представления появится с анимацией.Выполнение этого в -viewDidAppear: заставит высоту строки таблицы заметно подскочить, когда анимация представления представления заканчивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...