gpt4 book ai didi

iphone - 如何保持 iPhone 按钮的选定状态

转载 作者:行者123 更新时间:2023-12-03 20:48:45 27 4
gpt4 key购买 nike

我创建了 ScrollView 并将按钮设置在 ScrollView 中。按钮水平滚动并且工作正常。如果我单击该按钮,我会将背景图像设置为按钮中的“选定状态”。我的问题是,单击另一个按钮时如何更改不同按钮中的选定状态,以及单击另一个按钮时如何取消选择“选定状态”按钮。

我在 ScrollView 中有三个按钮,

 -(IBAction) Button1 : (id) sender
{
// btn1.selected = YES;
[btn1 setImage:[UIImage imageNamed:@"first.png"] forState:UIControlStateSelected];

}

-(IBAction) Button2 : (id) sender
{
// btn2.selected = YES;
[btn2 setImage:[UIImage imageNamed:@"second.png"] forState:UIControlStateSelected];

}

-(IBAction) Button3 : (id) sender
{
// btn3.selected = YES;
[btn3 setImage:[UIImage imageNamed:@"three.png"] forState:UIControlStateSelected];

}

见下图,(健康、娱乐、理财是三个按钮)

Image http://www.freeimagehosting.net/uploads/6b3daab12f.png

Img http://www.freeimagehosting.net/uploads/b6e0f234dc.png

注意:(如选项卡栏和分段控件)

单击第一个按钮并将背景图像设置为选定状态并单击第二个按钮时,将取消选择第一个按钮。那么我如何保持选定状态,直到单击另一个按钮。

提前致谢。

最佳答案

我通过以下方式解决了这个任务:

初始化方法:

  • 创建多个按钮,并为正常状态和选定状态定义图像。
  • 为每个按钮分配标签(例如,第 i 个按钮标签为 1000+i)。
  • 为每个按钮分配 IBAction。

操作方法:

  • 从之前选择的按钮中删除选择(使用 [view viewWithTag:] 方法通过其标签进行搜索)
  • 选择发件人。
  • 保存发件人的标签。

代码如下:

- (void)init {

....INITIALIZE SCROLLVIEW HERE.....

for ( int i = 0; i < 10; i++ ) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

[btn setFrame:.....];
[btn setImage:_IMAGE_ forState:UIControlStateNormal];
[btn setImage:_IMAGE2_ forState:UIControlStateSelected];
[btn setTag:i + 1000];

[btn addTarget:self action:@selector(setSelectedButton:) forControlEvents:UIControlEventTouchUpInside];

[self addSubview:btn];
}
}

- (IBAction)setSelectedButton:(id)sender {
[self setSelectedButtonByIndex:((UIButton *)sender).tag - 1000];
}

- (void)setSelectedButtonByIndex:(NSInteger)index {
if ( selectedElemId >= 0 ) {
UIButton *btn = (UIButton *)[self viewWithTag:selectedElemId + 1000];
[btn setSelected:NO];
}

UIButton *btn = (UIButton *)[self viewWithTag:index + 1000];
[btn setSelected:YES];

selectedElemId = btn.tag - 1000;
}

关于iphone - 如何保持 iPhone 按钮的选定状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3264477/

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