使用 UIAppearance 设置 UITableViewCell 文本样式

Posted

技术标签:

【中文标题】使用 UIAppearance 设置 UITableViewCell 文本样式【英文标题】:Style UITableViewCell text using UIAppearance 【发布时间】:2014-03-16 13:20:52 【问题描述】:

我有一个Plain 类型的tableView,其中包含一个Custom 类型的PrototypeCell。原型单元格类是默认的 UITableViewCell 类,因为我没有使用任何专门的子类。问题是,我只想设置默认 UITableViewCell 中包含的文本标签的样式(textLabel 和detailTextLabel),在 ios7 中使用 UIAppearance

我试过了

[[UILabel appearance]] appearanceWhenContainedIn:[UITableViewCell class], nil] setTextColor:UIColor.redColor];

无济于事。我知道 Apple 文档指出,上面提到的默认标签始终使用默认字体和 textcolor black 创建。但是我希望,用外观设计 UILabel 的样式应该可以解决。关于该主题的任何想法?

备注:我知道可以使用cell.textLabel.textColor = UIColor.redColor 设置文本颜色,但我想定义一次样式。

【问题讨论】:

为什么不在界面生成器中设置标签的文字颜色呢?无需在代码中执行此操作(如果您想在每个单元格上更改它,如您所述) 我没有使用自定义标签。我正在尝试设置 cell.textLabel 和 cell.detailTextLabel 对象的样式。感谢您的评论,我会将这些信息添加到我的问题中。据我所知,IB 不可能直接设置这个值。 是的,IB 有办法。看我的回答。 【参考方案1】:

如果你想使用这两个标签,你没有Custom 单元格,而是一个Subtitle 单元格。您仍然可以在 IB 中更改这些标签的属性。

只需双击标签即可更改其属性。 (或查看左侧的ContentView):

【讨论】:

谢谢,成功了。奇怪的是,使用“字幕”样式还可以正常使用 UIAppearance 代理。奇怪的是,在为“TextLabel”选择“自定义”和设置值时,这不起作用。 (我注意到,使用“自定义”时 descriptionLabel 不可见;这是有道理的)

以上是关于使用 UIAppearance 设置 UITableViewCell 文本样式的主要内容,如果未能解决你的问题,请参考以下文章

我啥时候可以开始使用使用 UIAppearance 设置的属性?

使用 UIAppearance 设置 UITableViewCell 文本样式

使用 UIAppearance 通用设置 UITableView BackgroundColor

使用 UIAppearance 设置视图控制器的直接视图背景颜色

防止 iOS 7 UINavigationBar 使用 UIAppearance 为 barTintColor 更改设置动画

如何从 UILabel 中删除 UIAppearance 设置?