我正在创建一个iPhone应用程序,其中我有一个自定义按钮。我通过创建标签并将其添加为子视图来设置按钮标题。现在当按钮突出显示时,我想更改标签文本颜色。
这是我的代码,
UIButton *button1= [UIButton buttonWithType:UIButtonTypeCustom];
[button1 setFrame:CGRectMake(68,162, 635, 101)];
[button1 setImage:[UIImage imageNamed:@"startwithouttext.png"] forState:UIControlStateNormal];
[button1 setImage:[UIImage imageNamed:@"startactivewithouttext.png"] forState:UIControlStateHighlighted];
UILabel *buttonLabel = [[UILabel alloc] initWithFrame:CGRectMake(button1.bounds.origin.x+50, button1.bounds.origin.y+20, button1.bounds.size.width-100, button1.bounds.size.height-40)];
[buttonLabel setFont:[UIFont fontWithName:@"Helvetica" size:28]];
buttonLabel.backgroundColor=[UIColor clearColor];
buttonLabel.textColor=[UIColor colorWithRed:83.0/255.0 green:83.0/255.0 blue:83.0/255.0 alpha:1.0];
buttonLabel.highlightedTextColor=[UIColor whiteColor];
buttonLabel.text = @"Long text string";
[button1 addSubview:buttonLabel];
[button1 bringSubviewToFront:buttonLabel];
[button1 setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
[button1 setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
[button1 addTarget:self action:@selector(button1clicked:) forControlEvents:
[mainView button1];
当按钮突出显示时,任何正文都可以帮我改变文字颜色吗?
答案 0 :(得分:22)
在StackOverflow上的另一个问题中找到答案: UIButton color issues
[button1 setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
如果您可以在不创建Label的情况下工作并将其添加为上面提到的子视图。
答案 1 :(得分:10)
您可以为UIControlStateHighlighted
状态UIButton
添加目标
[button1 addTarget:self action:@selector(buttonHighlighted:) forControlEvents:UIControlStateHighlighted];
并且在buttonHighlighted
方法中,您可以更改标签文字的颜色
- (void) buttonHighlighted:(id)sender
{
//code here
}
希望它能给你一个想法。
答案 2 :(得分:1)
对于SelectedColor
[yourButton setTitleColor:[UIColor purpleColor] forState:UIControlStateSelected];
对于HighlightedColor
[yourButton setTitleColor:[UIColor orangeColor] forState:UIControlStateHighlighted];