В моем случае tableview контроллера представления вызывает layoutSubviews
после вызова cellForRow
. При создании подпредставлений он возвращает свойства метки обратно к тому, что было указано в xib (не уверен, что это стандартное поведение). В качестве обходного пути я сохраняю атрибутивную строку в ячейке и снова перезаписываю ее в traitCollectionDidChange
, который происходит после размещения ячейки, поэтому я внес следующие изменения в класс ячейки
@property (nonatomic, strong) NSAttributedString *labelAttributedString;
- (void)configureLabelWith:(NSAttributedString *)title {
self.labelAttributedString = title;
self.label.attributedText = self.labelAttributedString;
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
[super traitCollectionDidChange:previousTraitCollection];
[self configureLabelWith:self.labelAttributedString];