Как установить вложенное свойство, если объект необходимо привести?
-
19-09-2019 - |
Вопрос
В моем методе установки меток в ячейках (для UITableView) я читаю «id», который на самом деле является UITableViewCell, поскольку я читаю в нескольких разных типах ячеек.То есть:
-(void)setMyCell:(id)cell atIndexPath:(NSIndexPath*)indexPath;
Некоторые ячейки имеют общий тип UITableViewCellStyle, тогда как другие более сложны и загружают NIB и т. д.для разных разделов.
Чтобы получить доступ к текстовому свойству UILabel для моих пользовательских ячеек, я могу сделать что-то вроде
[(CustomCell*) cell setMyTextLabel:@"text"];
и я могу создать метод в классе CustomCell для установки текста метки.
Для общих ячеек метка называется «textLabel».Я думаю, что могу сделать что-то вроде
[(UITableViewCell*) cell setTextLabel:<new UILabel here>];
но это кажется несколько запутанным, поскольку мне нужно создать новую UILabel.
Я пытался
(UITableViewCell*)cell.textLabel.text = @"text";
который работал бы, если бы ячейка принадлежала классу UITableViewCell, а не id, но в данном случае это не так.
Итак, есть ли способ просто установить textLabel.text без создания нового UILabel?
Решение
Пробовали ли вы добавить категорию в UITableViewCell
с помощью метода изменения метки, а затем переопределить этот метод в CustomCell
?