UIButton 背景图像从另一个按钮更改
Posted
技术标签:
【中文标题】UIButton 背景图像从另一个按钮更改【英文标题】:UIButton background image change from another button 【发布时间】:2014-04-19 21:24:37 【问题描述】:当我单击另一个按钮时,是否可以更改某个按钮的背景图像?
我基本上有 10 个按钮,我希望用户知道当前点击了哪个按钮。所以会发生什么是每个按钮有 2 个图像。一个为选中,一个为未选中。
我想创建一个函数来重置所有按钮的背景图像。在每个按钮的方法中,我将添加此重置功能,然后更改该特定按钮的背景图像。
有人可以建议这怎么可能吗?
我知道如何在单击按钮时更改按钮的背景图像。
我的按钮是这样的:
- (IBAction)posterButton:(id)sender
- (IBAction)colorInvertButton:(id)sender
等等。
【问题讨论】:
处理“重置”按钮的代码只需要引用其他按钮。这与您在处理程序中为每个按钮所做的操作并没有什么不同。 我在 .m 文件中只为这些按钮添加了 Action 功能。我是否也需要在 .h 文件中为它们创建属性? 您需要对所有按钮的引用,所以是的,您需要所有按钮的属性。 【参考方案1】:查看 UIButton 的文档:像这样配置每个按钮:
[button setControlImage:selectedImage forState:UIControlStateSelected];
[button setControlImage:unselectedImage forState:UIControlStateNormal];
^^这也可以在界面生成器中完成。
还有状态UIControlStateNormal | UIControlStateHighlighted
和UIControlStateSelected | UIControlStateHighlighted
,但这是可选的。
按钮也有一个选中状态,继承自UIControl
。
如果你想一次只选择一个按钮,试试这个(_selectedButton 应该声明为实例变量):
- (UIButton *)selectedButton
return _selectedButton;
- (void)setSelectedButton:(UIButton *)b
if(b != _selectedButton)
_selectedButton.selected = NO;
b.selected = YES;
_selectedButton = b;
【讨论】:
以上是关于UIButton 背景图像从另一个按钮更改的主要内容,如果未能解决你的问题,请参考以下文章