Я искал и не могу найти решение этой проблемы. Мой текущий код основан на Reload section without reloading section header.UITableView прыгает при расширении ячейки с автозагрузкой.
Я пытаюсь вырастить ячейку uitableview, когда пользователь нажимает на камеру. У меня есть подкласс UITableViewCell с UILabel, который первоначально ограничен двумя строками текста. Когда пользователь нажимает на UILabel, я устанавливаю свойство numberOfLines в UILabel равным 0, поэтому он расширяется до количества строк по мере необходимости.
Вот мой код из Tableview: didSelectRowAtIndexPath:
if (((NSNumber *)expandedCells[indexPath.section]).boolValue)
{
labelExpandingCell.cellLabel.numberOfLines = 10;
} else
{
labelExpandingCell.cellLabel.numberOfLines = 3;
}
[UIView setAnimationsEnabled:NO];
[self.tableView beginUpdates];
[self.tableView setNeedsDisplay];
[self.tableView endUpdates];
[UIView setAnimationsEnabled:YES];
Иногда это работает отлично, как правило, когда contentOffset.y == в UITableView в 0. Обычно TableView прыгает в заднее 100 пикселей или около того, когда я исполняю этот код. Вот пример журнала до и после запуска этого кода.
2016-03-25 14: 57: 08,549 TableViewTest [485: 129926] Содержание смещения перед обновлением: 153,500000 2016-03-25 14: 57: 08,568 TableViewTest [485: 129926] Содержание смещения после обновления: 136,500000
Почему автозапуск должен приводить к тому, что мой рабочий стол сканируется назад, когда я расширяю видимую ячейку?
Я получаю что-то подобное с кодом, который раньше работал. Не уверен, когда это началось. iOS 9 sdk возможно? Конечно, не нужно возвращаться к настройке высоты ячейки вручную! –