UIButton颜色问题

时间:2011-02-05 21:04:51

标签: iphone ios uibutton

如何更改UIButton上文本的颜色。这是我目前的代码:

    UIButton *b1 = [[UIButton alloc] init];
    b1.frame = CGRectMake(280,395,30,30);
    [[b1 layer] setCornerRadius:8.0f];
    [[b1 layer] setMasksToBounds:YES];
    [[b1 layer] setBorderWidth:1.0f];
    [[b1 layer] setBackgroundColor:[botCol CGColor]];
    b1.titleLabel.font = [UIFont boldSystemFontOfSize:24];
    [b1 setTitleColor:[UIColor redColor] forState:UIControlEventAllEvents];
    [b1 addTarget:self action:@selector(NextButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [b1 setTitle:@">" forState:UIControlStateNormal];
    [self.view addSubview:b1];

这是它的样子(忽略背景颜色和东西):

enter image description here

现在,我怎样才能让箭头变红?如您所见,我已经拥有以下内容:

[b1 setTitleColor:[UIColor redColor] forState:UIControlEventAllEvents];

但它不起作用。

2 个答案:

答案 0 :(得分:8)

尝试设置各个事件,例如:

[b1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

答案 1 :(得分:1)

您的原始代码无效的原因是您传递的是UIControlEvents参数而不是UIControlState参数。

[b1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

这将设置正常状态的颜色,除非您为其他状态设置颜色,否则它将在所有状态中保持不变。要更改其他状态的颜色,只需使用其他状态(UIControlStateNormalUIControlStateHighlightedUIControlStateDisabledUIControlStateSelected)调用相同的方法:

[b1 setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];