Objective-C UILabel不会改变颜色

3
我所拥有的代码几乎就是这样(没有自定义视图,只是一个单视图应用程序):

viewController.h:

@interface ViewController : UIViewController <UITextFieldDelegate>
...
...
@property (strong, nonatomic) IBOutlet UILabel *statusMessage;
@end

ViewController.m:

@synthesize statusMessage = _statusMessage;

- (void) viewDidLoad {
   ...
   ...
   ...
   self.statusMessage = [[UIlabel alloc] initWithFrame:CGRectMake(...)];
   [self.statusMessage setTextColor:[UIColor redColor]];
}

我能够更改背景颜色,并创建其他标签,这些标签显示为我选择的任何颜色,但无论我做什么,这个标签始终显示为灰色。欢迎提出任何建议!

我没有看到你在哪里更改标签的颜色。你现在只是更改了它的文本颜色。self.statusmessage.backgroundcolor = [uicolor redcolor]; - Totumus Maximus
1
你的标签是否被突出显示?如果是这种情况,highlightedColor 将接管。 - Sergey Kalinichenko
1
如果UILabel确实是IBOutlet,就不应该alloc+init它。 - user467105
谢谢Anna,那些是留下来的,用于玩弄界面构建器。Totumus,那段代码没有改变文本颜色,结果发现我设置了statusMessage.enabled = NO。感谢@dasblinkenlight,它并不是问题所在,但我会记住这个经验。 - Made2k
1个回答

14

您的标签是否被禁用?请检查enabled的值;如果是NO,它可能会覆盖您的颜色。对于highlighted同样如此;如果它是YES,它将使用高亮颜色。


就是这样!我不知道disabled会这样做。我认为这只是一个复制/粘贴问题,留下了那个。谢谢。 - Made2k

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接