如何在iPhone中保持按钮中的选定状态

如何在iPhone中保持按钮中的选定状态,iphone,uibutton,state,selected,Iphone,Uibutton,State,Selected,我已经创建了滚动视图并设置了滚动视图中的按钮。按钮水平滚动,工作正常。如果我点击按钮,我会在按钮中将背景图像设置为“选定状态”。我的问题是如何在单击其他按钮时更改其选定状态,以及如何在单击其他按钮时取消选择“选定状态”按钮 我在滚动视图中有三个按钮 -(IBAction) Button1 : (id) sender { // btn1.selected = YES; [btn1 setImage:[UIImage imageNamed:@"first.png"

我已经创建了滚动视图并设置了滚动视图中的按钮。按钮水平滚动,工作正常。如果我点击按钮,我会在按钮中将背景图像设置为“选定状态”。我的问题是如何在单击其他按钮时更改其选定状态,以及如何在单击其他按钮时取消选择“选定状态”按钮

我在滚动视图中有三个按钮

 -(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];

 }
见下图,(健康、娱乐和金钱手表是三个按钮)

注:(如Tabbar和分段控件)

单击第一个按钮并将背景图像设置为选定状态,然后单击第二个按钮,将取消选择第一个按钮。那么,在单击另一个按钮之前,我如何保持选定的状态呢


提前感谢。

我用以下方法解决了这项任务:

初始方法:

  • 为正常和选定状态创建具有定义图像的按钮数
  • 为每个按钮分配标记(例如,第i个按钮标记为1000+i)
  • 为每个按钮分配iAction
行动方法:

  • 从以前选择的按钮中删除所选内容(使用[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;
}
-(void)init{
..在此处初始化SCROLLVIEW。。。。。
对于(int i=0;i<10;i++){
UIButton*btn=[UIButton按钮类型:UIButtonTypeCustom];
[btn设置帧:…];
[btn setImage:_IMAGE_uufor状态:UIControlStateNormal];
[btn setImage:_IMAGE2_uuu状态:UIControlStateSelected];
[btn设置标签:i+1000];
[btn addTarget:self action:@selector(setSelectedButton:)for ControlEvents:UIControlEventTouchUpInside];
[自添加子视图:btn];
}
}
-(iAction)设置所选按钮:(id)发送器{
[self-setSelectedButtonByIndex:((UIButton*)发送方.tag-1000];
}
-(无效)设置选定按钮索引:(NSInteger)索引{
如果(selectedElemId>=0){
UIButton*btn=(UIButton*)[带标签的自视图:selectedElemId+1000];
[btn:NO];
}
UIButton*btn=(UIButton*)[带标签的自视图:索引+1000];
[选择的btn设置:是];
selectedElemId=btn.tag-1000;
}