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