Я должен установить heightForRowAtIndexPath, если я использую пользовательский UITableViewCell?

Я должен установить heightForRowAtIndexPath, если я использую пользовательский UITableViewCell? В моем NIB я уже установил ширину ячеек.

Когда я переопределяю heightForRowAtIndexPath, содержание моей ячейки не появляется, даже при том, что это установлено на высоту, определенную в NIB.

Если я не переопределяю heightForRowAtIndexPath, содержание ячейки появляется, но существует переполнение, так как высота по умолчанию не является достаточно большой.

5
задан Sheehan Alam 8 June 2010 в 17:09
поделиться

1 ответ

Если все ваши строки имеют одинаковую высоту, вы можете установить свойство rowHeight своего UITableView вместо реализации tableView: heightForRowAtIndexPath : . Если у вас есть строки разной высоты, вам необходимо реализовать tableView: heightForRowAtIndexPath: .

Ни один из этих методов не вернет автоматически высоту ячейки, которую вы определили в своей NIB, поскольку они вызываются перед началом построения ячеек в tableView: cellForRowAtIndexPath: .

Чтобы использовать высоту ячейки, определенной в вашем NIB, я рекомендую вам определить настраиваемое свойство вашего контроллера под названием prototypeCell , которое будет содержать единственную ячейку, которая никогда не отображается в вашей таблице. В tableView: heightForRowAtIndexPath: проверьте, является ли prototypeCell нулем.Если это так, инициализируйте его из своего NIB. Затем верните prototypeCell.frame.size.height .

12
ответ дан 13 December 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: