Раньше я создавал пользовательские ячейки без прототипа, только пользовательский класс, регистрировал этот класс для повторного использования с моим UITableView и использовал это.Инициализация прототипа UITableViewCell
В этом случае я использовал: - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
, и это сработало отлично (за исключением UITableViewHeaderFooterView, они никогда не знали свой кадр, хотя этот метод был вызван, кадр был 0 0 0 0 - но это не мой вопрос здесь).
Теперь я создавал некоторые пользовательские UITableViewCells с помощью Interface Builder. Создал свой собственный класс, подключил выходы из Interface Builder к моему пользовательскому классу, и я заметил, что вызывается - (id)initWithCoder:(NSCoder *)aDecoder
, и именно здесь мне нужно внести изменения. НО, я не смог. Это единственный метод init, который вызывается, но если я попытаюсь изменить шрифт моей метки там, он не будет изменен. Я также попытался объединить прямоугольную кнопку, но это тоже не работает (моя кнопка также имеет фрейм 0 0 0 0 - еще не существует) в этом методе.
Мой вопрос: где я должен изменять такие вещи, как шрифт, цвет фона элементов, созданных с использованием прототипов?
Dobar дан. Это именно то, что я говорил. Если я попытаюсь настроить что-то в этом методе init, он не выполняет эту работу. Представьте, что у вас есть кнопка в ячейке прототипа, созданная с помощью Interface Builder. Кнопка подключается через розетку к вашему специальному классу для этой прототипной ячейки. Если вы попытаетесь изменить фон этой кнопки в initWithCoder, ничего не произойдет. Если вы NSLog (@ "% f", self.customButton.frame.size.width), вы получите 0, даже если это не так. Единственный способ переопределить это - создать мою собственную функцию - (void) customizeCell и вызвать ее после [dequeueReusable ...] каждый раз. – jovanjovanovic
Я вижу. Вы должны включить эту настройку в awakeFromNib. Я отредактировал свой ответ выше. Перед awakeFromNib ваши пользовательские подзаголовки еще не загружены. – akw
Теперь вот ответ, который я искал. Спасибо, сэр. Хвала! – jovanjovanovic