Мне трудно понять, как работает UITableViewController.В основном вот моя структура:
У меня есть tableViewController, который, конечно, содержит tableView.И здесь я использую getCellContentView и cellForRowAtIndexPath, чтобы выполнить всю работу, связанную с моими ячейками.В моей камере есть несколько UILabels со своими кадрами, по одному для каждой ориентации.Я обнаруживаю и выполняю все изменения ориентации и корректно перерисовываю кадр.Там нет проблем.Пока все хорошо.
Теперь мне нужно heightForRowAtIndexPath, чтобы вернуть 100 для ландшафта и сказать 200 для портретной ориентации.Моя проблема заключается в том, что когда я NSLog внутри него, метод вызывается дважды по любой причине, когда я вращаю tableView.Кто-нибудь знает, почему метод запускается дважды при вращении?Я подумал, что -reloadData может быть проблемой, и я проверил, вызывал ли я -reloadData по очереди как-то дважды, но нет.Я вызываю -reloadData только один раз внутри метода willRotateToInterfaceOrientation, и больше нигде в коде он не вызывается (кроме как внутри первого вызова viewDidLoad).
Почему heightForRowAtIndexPath вызывается дважды при каждом событии вращения?Также кажется, что heightForRowAtIndexPath также не может правильно определить ориентацию, когда вращение начинается. Я использую свойство ориентации строки состояния, чтобы проверить, что внутри heightForRowAtIndexPath вернуть соответствующую высоту ячейки.Любая помощь будет потрясающей!