gpt4 book ai didi

ios - 如何在ios中单击按钮时更改按钮的图像

转载 作者:行者123 更新时间:2023-11-29 01:38:32 25 4
gpt4 key购买 nike

坦白:我已经浏览了我能找到的所有可能的链接,但不幸的是没有一个对我有用。

我正在动态创建按钮。当选择一个按钮时,它应该更改所选按钮的颜色,其余按钮应保持默认颜色。这样,用户就可以识别选择了哪个按钮。

假设有 3 个按钮:全部为蓝色,当我选择第一个按钮时,它应该变为白色,其他两个按钮应保持蓝色。当我选择第二个时,第一个应该变回蓝色,第二个现在应该是白色。

btnCounts 我从服务器获取的数据会有所不同。

  -(void)createButtons{
for (int i=0; i<btnCounts; i++) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTag:i];
[btn setFrame:CGRectMake(xVal, 0, width/btnCounts, 40)];
// [btn setImage:[UIImage imageNamed:@"btn_image.png"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"blue.png"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"white.png"] forState:UIControlStateSelected];
[btn setTitle:name forState:UIControlStateNormal];
[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
[scrV addSubview:btn];
xVal += self.view.frame.size.width/btnCounts+1;
}
}

现在,在 btnClicked: 方法中,我将按钮作为参数传递,以便我可以使用选定的按钮。

 -(void)btnClicked:(UIButton *)button
{
int tag = (int)button.tag;
//...
}

请帮我找到我在这里缺少的东西。

谢谢。

最佳答案

创建一个实例 UIButton 变量来存放所选按钮,以便您可以在点击下一个按钮时取消选择它。如果您只将当前点击的按钮传递给您的 btnClicked: 方法,您将不知道要取消选择哪个按钮(如果有的话)。

@implementation ClassName {
UIButton *previousButton;
}

...

- (void)btnClicked:(UIButton *)button
{
if(previousButton)
[previousButton setBackgroundColor:[UIColor blueColor]];

previousButton = button;

[button setBackgroundColor:[UIColor whiteColor]];

// do whatever else you need to do here
}

关于ios - 如何在ios中单击按钮时更改按钮的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32698562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com