我正在使用 UIAppearance 设置应用程序中所有标签的文本颜色。然而文本颜色不会改变。

这是我如何创建标签的示例

//show the loading message
MessageLabel *messageLabel = [[MessageLabel alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
messageLabel.text = @"\n\nLoading ...\n\n";
messageLabel.numberOfLines = 0;
messageLabel.textAlignment = NSTextAlignmentCenter;
[messageLabel sizeToFit];
self.tableview.backgroundView = messageLabel;

这是我设置文本颜色的方法
[[MessageLabel appearance] setTextColor:[UIColor blackColor]];

需要注意的是,所有这些 MessageLabel 都是 UITableView 的 BackgroundViews

最佳答案

提到 this , UIAppearance 似乎并不真正适用于 UILabel ...

由于您是从 UILabel 继承的子类,也许在 MessageLabel 类中设置 textcolor 属性 initWithFrame: 方法是有意义的?

或者另一种选择,因为你说这些 MessageLabel 实例用于 UITableViewCell 的背景,也许让标签的背景清晰并更改单元格本身的背景是有意义的,例如在 tableView 的委托(delegate)中的 tableView:willDisplayCell:forRowAtIndexPath: 方法中?

关于objective-c - UIAppearance 对 Label 文本颜色没有影响,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34466850/

10-13 08:08