UIButton背景图像从另一个按钮更改

时间:2014-04-19 21:24:38

标签: ios objective-c uibutton

当我点击另一个按钮时,是否可以更改某个按钮的背景图像?

我基本上有10个按钮,我希望用户知道当前点击了哪个按钮。那么会发生什么是每个按钮有2个图像。一个用于选中,一个用于未选中。

我想创建一个能够重置所有按钮的背景图像的功能。在每个按钮的方法中,我将添加此重置功能,然后更改该特定按钮的背景图像。

有人可以建议这怎么可能?

我知道在单击该按钮时如何更改按钮的背景图像。

我的按钮看起来如何:

- (IBAction)posterButton:(id)sender {}
- (IBAction)colorInvertButton:(id)sender {}

等。

1 个答案:

答案 0 :(得分:0)

查找UIButton的文档:配置每个按钮,如下所示:

[button setControlImage:selectedImage forState:UIControlStateSelected];
[button setControlImage:unselectedImage forState:UIControlStateNormal];

^^这也可以在界面构建器btw中完成。

还有州UIControlStateNormal | UIControlStateHighlightedUIControlStateSelected | UIControlStateHighlighted,但这是可选的。

按钮也具有选定状态,继承自UIControl

如果您希望一次只选择一个按钮,请尝试此操作(_selectedButton应声明为实例变量):

- (UIButton *)selectedButton {
    return _selectedButton;
}
- (void)setSelectedButton:(UIButton *)b {
    if(b != _selectedButton) {
        _selectedButton.selected = NO;
        b.selected = YES;
        _selectedButton = b;
    }
}