2014-12-12 3 views
-1

так что я застрял в этой проблеме часами. Я использую пользовательский UITableViewCell, который находится в файле nib. Очень простое приложение, которое создает случайный элемент, который имеет имя, серийный номер и $. Элементы отображаются в таблице. Я отредактировал ограничения для пользовательской ячейки в файле xib. Все линии синие и отлично отображаются. Это просто, когда я нажимаю, чтобы добавить элемент, все ячейки элемента выше становятся меньше и сквошу вместе, это нарушает ограничение. Просто не знаю, почему ячейки меняют размер, когда я нажимаю add! Если я нажму на ячейку для подробностей, а затем вернусь к экрану просмотра таблицы, ячейки будут отформатированы правильно снова. Надеюсь, кто-то может помочь!Почему ячейки в представлении таблицы изменяются при добавлении ячейки?

Я разместил ссылку на файлы кода: http://ge.tt/74OIim62/v/0?c

Это из (Big Nerd Ranch Программирование Book)

ответ

2

Вы не выполнили одно из необходимых методов UITableView:

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return 80.0f; 
} 

Или установить rowHeight как фиксированное значение:

- (void)viewDidLoad { 
    ... 
    self.tableView.rowHeight = 80.0f; 
    ... 
} 

Или вам нужно настроить UITableView для автоматического расчета высоты для вас (рекомендуется и наиболее удобно в iOS 8).

- (void)viewDidLoad { 
    .... 
    self.tableView.estimatedRowHeight = 80.0f; 
    self.tableView.rowHeight = UITableViewAutomaticDimension; 
    ... 
} 
+0

Я использовал третий! Огромное спасибо. Прекрасно работает. Провел ЧАСЫ, пытаясь исправить эту крошечную вещь. Книга никогда не упоминает об этом. Жизнь спасателя. Еще раз спасибо ! – Kex

+0

Вероятно, книга была написана на iOS 7, эти функции от iOS 8, а поведение UITableView немного изменилось в последних обновлениях –

+0

, имеющих еще одну небольшую проблему (последняя), теперь я пытаюсь использовать Dynamic Text Size в ячейке. BNRItemCell имеет метод - (void) updateInterfaceForDynamicTypeSize, чтобы назначить размер шрифта. Если я изменю размер шрифта системы в настройках, серийный номер не будет отображаться правильно для небольших размеров (сверху и снизу отрубается). Тем не менее, он работает нормально для больших размеров. Не знаю, почему. Связать ли поле с IBOutlet UILabel * serialNumberLabel. Есть ли у вас шанс заглянуть? (обновленный код по адресу: http://ge.tt/3PyFLs62/v/0?c) – Kex

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