Что у меня возникают:способов изменить алгоритм, чтобы установить высоту строки в UITableView
var size: CGFloat = 21.0
- TableView с действиями cellForRowAtIndexPath и heightForRowAtIndexPath
В cellForRowAtIndexPath I Установка строки в TextLabel и сохранение textLabel.frame.height в размер vairable
Тогда в heightForRowAtIndexPath Я возвращаюсь размер переменной
Проблема заключается в том, что heightForRow выполняется перед cellForRow и мне нужно перезагрузить представление таблицы два раза. Но если есть много ячеек - некоторые из невидимых не будут перезагружены, а их размер не будет изменяться.
Как я могу заставить этот алгоритм работать правильно во всех случаях без перезагрузки дважды?
Update:
Вот как моя метка устанавливается autolayout в прототипе клетки
Он не имеет нижнего ограничения
Update 2:
Здесь - файл проекта sendspace.com/file/816z35
Вы можете рассчитать высоту ячейки в 'heightForRowAtIndexPath' вместо в 'cellForRowAtIndexPath' – anhtu
Слишком хорошо, чтобы быть правдой. Изменяя метку в ячейке, она меняет свою высоту, которая должна быть задана как высота строки. Я не могу установить высоту строки перед тем, как печатать строку в метку –
@HrenoHrenovich, почему бы и нет, вы можете вычислить высоту 'NSString' и вернуть ее в' heightForRowAtIndexPath'. – rckoenes