Как установить вложенное свойство, если объект необходимо привести?

StackOverflow https://stackoverflow.com/questions/1321217

  •  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?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top