使用 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 更改设置动画