在IOS中单击时更改按钮文本颜色

时间:2017-07-20 09:25:56

标签: ios objective-c

我知道这个问题经常被问到,而且很多答案都是正确的,我的代码中我遇到了一个问题。我有单选按钮,当用户单击按钮背景颜色和文本颜色更改时。背景颜色按照我的预期更改,但单击按钮时文本颜色变为蓝色区域。我已将其编码为单击时更改白色但当我单击按钮时将文本区域更改为蓝色,我很困惑我在哪里犯错误。我的代码是,

 self.selectedTitleColor = [UIColor whiteColor];
self.selectedBackgroundColor = [UIColor redColor];

self.unselectedTitleColor = [UIColor blackColor];
self.unselectedBackgroundColor = [UIColor whiteColor];

- (IBAction)House:(id)sender {

[sender setSelected: ![sender isSelected]];
[self.flat setSelected:NO];
[self.lowerP setSelected:NO];
[self.upperP setSelected:NO];
[self.farmH setSelected:NO];
[self.pentH setSelected:NO];
[self.roomB setSelected:NO];


[self updateButtonColors];

}

-(void)updateButtonColors {
if (self.house.selected) {
    [self.house setTitleColor:self.selectedTitleColor forState:UIControlStateNormal];
    [self.house setBackgroundColor:self.selectedBackgroundColor];

    House=_house.titleLabel.text;
    ImageViewD = [NSString stringWithFormat:@"%@",House];

    NSLog(@"HHHH  %@",ImageViewD);

} else {
    [self.house setTitleColor:self.unselectedTitleColor forState:UIControlStateNormal];
    [self.house setBackgroundColor:self.unselectedBackgroundColor];
        }

}

enter image description here

2 个答案:

答案 0 :(得分:2)

将故事板中的按钮类型从系统更改为自定义

enter image description here

答案 1 :(得分:0)

最好将所有属性都放入Storyboard本身。您可以为您的颜色拍摄两张图片,并设置为 UIButton backgroundImage 状态。

请查看下面的图片。

[Normal State]

Selected State

我有一个带有以下方法的绑定按钮及其代码:

- (IBAction)clicked:(id)sender {
    UIButton *btn = (UIButton *)sender;
    btn.selected = !btn.selected;
}

下面是我拍摄的照片。

Red.png

Green.png

希望它会对你有所帮助。