2015-11-23 7 views
0

У меня есть 5 различных типов пользовательских ячеек. Поэтому я хочу получить разные высоты от пользовательских ячеек, потому что я использую эти ячейки несколько раз, исходя из моего требования. Есть ли способ написать код, который будет вычислять высоту .xib и будет устанавливать высоту ячейки как высоту .xib. И высота ячейки должна измениться на основе пользовательской ячейки, которую я выбрал.Я хочу получить высоту из .xib-файла, который я создал для таможенных ячеек

Мой вопрос похож на этот вопрос, но я не получаю решение, как они сказали, что здесь:

Change tableview row height based on multiple cell xib

ответ

0

Если вы реализуете ячейку пользовательской таблицы из XIb, Вы должны наследоваться TableCell метод. Вы можете использовать awakeFromNib, чтобы настроить свою ячейку таблицы!

Чтобы узнать высоту ячейки, вам нужно более ездить метод компоновки подвидов, и вы можете получить высоту ячейки следующего кода:

self.frame.size.height 

Вы можете добавить наблюдатель к раме в макете subviews, так что вы можете получить уведомление, всякий раз, когда есть изменение в высоте !!!!

Из документации:

Готовит приемник для обслуживания после того, как он был загружен из Interface Builder архива или файла бобов. Инфраструктура nib-load отправляет сообщение awakeFromNib каждому объекту, воссозданному из архива nib , но только после того, как все объекты в архиве были загружены и инициализированы . Когда объект получает сообщение awakeFromNib , гарантированно будет иметься все его выход и действие соединений, уже установленных. Вы должны вызывать реализацию super awakeFromNib, чтобы предоставить родительским классам возможность выполнить любую дополнительную инициализацию, в которой они нуждаются. Хотя реализация этого метода по умолчанию ничего не делает, многие классы UIKit предоставляют непустые реализации. Вы можете назвать реализацию super в любой момент во время своего собственного метода awakeFromNib.

+0

Спасибо за ответ. Но я не понимаю, как это сделать в awakeFromNib, можете ли вы рассказать мне о процедуре? –

+0

Как вы сказали, вы хотите знать высоту каждой пользовательской ячейки, добавить наблюдателя для смены кадров пользовательской ячейки в методе subviews макета –

+0

Я не получил точного ответа. Я плохо разбираюсь в xib, поэтому, когда мне нужно написать этот «self.frame.size.height», и у меня есть 5 tableViewCells, поэтому мне нужно подклассировать их все в методе heightForRowAtIndexPath? –

Смежные вопросы