2014-06-06 2 views
0

내 기본 라디오 버튼을 구현하려고하고 있으므로 한 번에 하나만 선택할 수 있습니다. 가 여기에 내가 일 아민을 해요 코드>Xcode 라디오 버튼 - 다른 버튼을 눌렀을 때 버튼의 배경 이미지 변경

- (IBAction)btn2Pressed:(UIButton *)sender { 
    [btn1 setBackgroundImage:[UIImage imageNamed:@"circle-uncheck.png"] forState:UIControlStateNormal]; 
    btn2pressed = YES; 
    btn1pressed = NO; 
} 


- (IBAction)btn1Pressed:(UIButton *)sender { 
    [btn2 setBackgroundImage:[UIImage imageNamed:@"circle-uncheck.png"] forState:UIControlStateNormal]; 
    btn1pressed = YES; 
    btn2pressed = NO; 
} 

입니다 그러나 그것은 작동하지 않습니다, 다른 버튼 즉, 이미지가 변경되지 않습니다. :(

나는 내가 잘못 뭘하는지 알아낼 수 아니에요. 당신이이 개 버튼 중 하나를 누르면

+0

'btn1'과'btn2' 변수는 무엇입니까? 그들은 IBOutlets입니까? 단추에 연결되어 있는지 확인 하시겠습니까? –

+0

예, btn1 및 btn2는 각각 btn1Pressed 및 btn2Pressed IBActions에 연결됩니다. – Zaxter

답변

1

, 당신은 circle-uncheck.png에 배경 이미지를 설정합니다. 방법은 이제까지 checked로 변경된다 ? 내가 생각 영원히 unchecked 유지됩니다

편집을 (아래 언급으로 인해).

을 당신이 인터페이스 빌더에서 처음을 배경 이미지 을 설정하면, 그들은 01,237로 변경됩니다버튼을 누르면 곧바로 checked 상태로 설정되지 않습니다.
당신은 내가 IBOutletCollection를 작성하고 당신의 라디오 버튼의 모든 연결 것입니다, 당신은 UISegmentedControl을 사용하지 않으려면

- (IBAction)btn2Pressed:(UIButton *)sender { 
    [btn1 setBackgroundImage:[UIImage imageNamed:@"circle-uncheck.png"] forState:UIControlStateNormal]; 
    [btn2 setBackgroundImage:[UIImage imageNamed:@"circle-check.png"] forState:UIControlStateNormal]; 
    btn2pressed = YES; 
    btn1pressed = NO; 
} 

- (IBAction)btn1Pressed:(UIButton *)sender { 
    [btn2 setBackgroundImage:[UIImage imageNamed:@"circle-uncheck.png"] forState:UIControlStateNormal]; 
    [btn1 setBackgroundImage:[UIImage imageNamed:@"circle-check.png"] forState:UIControlStateNormal]; 
    btn1pressed = YES; 
    btn2pressed = NO; 
} 
+0

인터페이스 빌더 속성 검사기에서 배경 이미지를 설정 중입니다. – Zaxter

+0

당신 말이 맞아요! 지적 해 주셔서 고맙습니다. 코드를 변경했지만 백그라운드 이미지는 변경되지 않습니다. : – Zaxter

+0

내 "코드"(UIImage imageNamed : @ "circle-check.png")를 변경하여 기존 "선택"된 이미지 중 하나가 사용되도록 가정합니까? –

0

처럼 뭔가 코드를 수정했다.

@property(nonatomic, strong) IBOutletCollection(UIButton) NSArray *radioButtons; 

은 인터페이스 빌더에서 나는 선택된 상태의 배경 이미지와 정상 상태의 배경 이미지를 설정합니다.

또는 같은 코드 뭔가

:

-(IBAction)didSelectRadioButton:(id)sender 
{ 
    for(UIButton *button in self.radioButtons){ 
     button.selected = NO; 
    } 

    UIButton *selectedButton = (UIButton *)sender; 
    selectedButton.selected = YES; 
} 

간단한 라디오 UIButtons를 사용하여 솔루션 및 확장 성 :

W :

[btn1 setBackgroundImage:[UIImage imageNamed:@"circle-uncheck.png"] forState:UIControlStateNormal]; 
[btn1 setBackgroundImage:[UIImage imageNamed:@"circle-check.png"] forState:UIControlStateSelected]; 

그 때 나는 하나 개의 제어 기능을 만들 것

관련 문제