【问题标题】:UIButton background image change from another buttonUIButton 背景图像从另一个按钮更改
【发布时间】:2014-04-19 21:24:37
【问题描述】:

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

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

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

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

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

我的按钮是这样的:

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

等等。

【问题讨论】:

  • 处理“重置”按钮的代码只需要引用其他按钮。这与您在处理程序中为每个按钮所做的操作并没有什么不同。
  • 我在 .m 文件中只为这些按钮添加了 Action 功能。我是否也需要在 .h 文件中为它们创建属性?
  • 您需要对所有按钮的引用,所以是的,您需要所有按钮的属性。

标签: ios objective-c uibutton


【解决方案1】:

查看 UIButton 的文档:像这样配置每个按钮:

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

^^这也可以在界面生成器中完成。

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

按钮也有一个选中状态,继承自UIControl

如果你想一次只选择一个按钮,试试这个(_selectedButton 应该声明为实例变量):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多