Предполагая подкласс A UITableViewCell, который имеет два состояния: 1.) Показать заголовок (высота: 0-50px) 2.) Показать заголовок (высота: 0-50px) + UITableView (высота: 50-150 пикселей) (как внутри подкласса UITableViewCell)Как изменить размер UITableViewCell с переменным содержимым?
Точно одна ячейка А может находиться в состоянии 2, поэтому высота 200 пикселей. Все остальные ячейки находятся в состоянии 1, поэтому высота 50 пикселей.
Подкласс A выполнен с IB и имеет размер по умолчанию 200px.
контроллер, который управляет UITableView держит какая ячейка находится в состоянии 2.
Вопрос: Как изменить высоту, основываясь на состоянии?
я сделал осуществить heightForRowAtIndexPath
следующим образом:
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
if (self.openTab && indexPath.row == self.openTab.row) {
return 200.0;
} else {
return 50.0;
}
}
Это не работает.
Кроме того, я пытался отрегулировать высоту в cellForRowAtIndexPath
:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
static NSString *CellIdentifier = @"conversationTableViewCell";
ConversationTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[self.tableView registerNib:[UINib nibWithNibName:@"ConversationTableViewCell" bundle:nil] forCellReuseIdentifier:CellIdentifier];
cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}
if (self.openTab && indexPath.row == self.openTab.row) {
CGRect frame = cell.contentView.bounds;
frame.size.height = 200.0;
cell.contentView.bounds = frame;
} else {
CGRect frame = cell.contentView.bounds;
frame.size.height = 50.0;
cell.contentView.bounds = frame;
}
return cell;
}
Помимо изменения высоты границ в contentView, я также применять эту идею к раме и как пределы/рамки UITableView в пределах подкласса A непосредственно. Я также экспериментировал с несколькими другими методами (см. Комментарий). Ничего не работает.
Любые идеи, как это сделать?
Где код, который устанавливает self.openTab свойство? – sha
в том же классе, что и указанный код, я могу убедиться, что условное работает правильно ... – Scholle
Так что же конкретно не работает? Вызывается ли ваш 'heightForCell' для ячейки openTab? – sha