2010-03-19 2 views
0

У меня есть пользовательский UITableViewCell. В своей функции - (id) initWithStyle: (UITableViewCellStyle) style reuseIdentifier: (NSString *) reuseIdentifier, мне нужно знать высоту ячейки, как определено в функции tableView heightForRowAtIndexPath, чтобы я мог правильно позиционировать UITextField, UIButton и т. Д. В ячейке. , Есть идеи?Пользовательский UITableViewCell с высотой, определенной в UITableView

ответ

1

Как я обычно это делаю, я добавляю метод подкласса NSObject, который будет действовать как мой объект источника данных (что входит в массив данных, если вы используете этот базовый подход).

например. Скажем, нам нужно отобразить кучу сообщений в блоге (чистый текст), каждый пост - это ячейка. Поскольку каждая строка будет иметь переменную высоту, я создаю подкласс NSObject, назовите его BlogPostInfo. В этом классе, я добавляю метод:

- (int)cellHeight; 
{ 
    /* Perform a calculation with blog data, probably using sizeWithFont: */ 
} 

Поскольку у вас есть этот метод в вашем объекте данных, вы можете использовать его следующим образом в UITableViewController:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    /* assuming blogPosts is an NSMutableArray or whatevs */ 
    return [[blogPosts safeObjectAtIndex:indexPath.row] cellHeight]; 
} 

Вот как я делаю динамических высот tableviewcells.

Смежные вопросы