【问题标题】:How do I set a nested property if the object needs to be cast?如果需要强制转换对象,如何设置嵌套属性?
【发布时间】:2012-06-02 14:00:43
【问题描述】:

在我在单元格中设置标签的方法中(对于 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";

如果 cell 属于 UITableViewCell 类,而不是 id,这将起作用,但在这种情况下不会。

那么有什么方法可以只设置 textLabel.text 而无需创建新的 UILabel?

【问题讨论】:

    标签: objective-c uitableview


    【解决方案1】:

    您是否尝试过使用标签更改方法向UITableViewCell 添加类别,然后在CustomCell 中覆盖该方法?

    【讨论】:

      猜你喜欢
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 2016-09-29
      相关资源
      最近更新 更多