Я использую статический вид таблицы, который содержит 3 разных ячейки. И когда нажата кнопка в первой ячейке, высота первой ячейки должна увеличиваться. Ниже приведена функция, называемая при нажатии кнопки.Невозможно изменить статическую высоту UITableViewCell
@IBAction func toggleExpandCamera(_ sender: Any) {
self.shouldShowCameraPreview = !self.shouldShowCameraPreview
self.tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .automatic)
}
И делегатом табличного представления heightForRowAt()
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == 0 {
let expandedHeight: CGFloat = 415
let collapsedHeight: CGFloat = 115
if self.shouldShowCameraPreview {
return expandedHeight
}
return collapsedHeight
} else if indexPath.row == 2 {
// If already premium, dont show purchases cell.
if AGTUserDefaultValues.isUserPremium {
return 0
}
// Last cell should be same height as the table view
return self.tableView.frame.height - (self.navigationController?.navigationBar.frame.height ?? 0)
- min(UIApplication.shared.statusBarFrame.height, UIApplication.shared.statusBarFrame.width)
} else {
return super.tableView(tableView, heightForRowAt: indexPath)
}
}
Я подтвердил, что heightForRowAt()
IS вызывался, и это работает отлично для других высот клеток при toggleExpandCamera()
называется. Просто первая клетка ведет себя довольно странно. Кажется, что оно исчезло или что-то в этом роде. Я добавил скриншоты ниже, до и после расширения.
При дальнейшем осмотре, это выглядит как клетки все еще существуют, но все еще имеет ту же высоту. Единственное отличие состоит в том, что между двумя ячейками больше места. Я также узнал, что альфа-значение ячейки 0.
UPDATE Я попытался создал новый проект, с только Tableview и функции для расширения ячейки, и до сих пор на этот проект, то же самое произошло. Если кому-то интересно, я загрузил проект here.
Есть ли у вас какие-либо ограничения, которые могут помешать? – Yahel
@Yahel Хм .. Я так не думаю. Странно то, что это также, по-видимому, меняет альфу ячейки, поэтому она становится невидимой после расширения. –
Вы пытались изменить высоту, но только на 10 пикселей, чтобы проверить, движется ли она немного и в каком направлении? Возможно, это даст вам ключ к тому, что происходит. Я не вижу никакой причины для изменения вашей альфы, учитывая код, который вы предоставляете. – Yahel