Если вы реализуете ячейку пользовательской таблицы из XIb, Вы должны наследоваться TableCell метод. Вы можете использовать awakeFromNib
, чтобы настроить свою ячейку таблицы!
Чтобы узнать высоту ячейки, вам нужно более ездить метод компоновки подвидов, и вы можете получить высоту ячейки следующего кода:
self.frame.size.height
Вы можете добавить наблюдатель к раме в макете subviews, так что вы можете получить уведомление, всякий раз, когда есть изменение в высоте !!!!
Из документации:
Готовит приемник для обслуживания после того, как он был загружен из Interface Builder архива или файла бобов. Инфраструктура nib-load отправляет сообщение awakeFromNib каждому объекту, воссозданному из архива nib , но только после того, как все объекты в архиве были загружены и инициализированы . Когда объект получает сообщение awakeFromNib , гарантированно будет иметься все его выход и действие соединений, уже установленных. Вы должны вызывать реализацию super awakeFromNib, чтобы предоставить родительским классам возможность выполнить любую дополнительную инициализацию, в которой они нуждаются. Хотя реализация этого метода по умолчанию ничего не делает, многие классы UIKit предоставляют непустые реализации. Вы можете назвать реализацию super в любой момент во время своего собственного метода awakeFromNib.
Спасибо за ответ. Но я не понимаю, как это сделать в awakeFromNib, можете ли вы рассказать мне о процедуре? –
Как вы сказали, вы хотите знать высоту каждой пользовательской ячейки, добавить наблюдателя для смены кадров пользовательской ячейки в методе subviews макета –
Я не получил точного ответа. Я плохо разбираюсь в xib, поэтому, когда мне нужно написать этот «self.frame.size.height», и у меня есть 5 tableViewCells, поэтому мне нужно подклассировать их все в методе heightForRowAtIndexPath? –