2011-11-25 1 views
0

UIButton (확인란이있는 상자, 체크 표시가없는 상자)에 대해 두 개의 이미지가있는 경우 UIButton을 서브 클래 싱해야합니까? 그렇다면 버튼을 눌러 켜기/끄기 (또는 선택/선택하지 않음) 상태로 두 개의 이미지를 설정하는시기를 어떻게 알 수 있습니까?사용자 정의 이미지의 서브 클래스 UIButton?

UIButton을 서브 클래스하지 않아도된다면 클래스에 체크 표시 버튼을 사용할 때마다 이와 같은 작업을 수행합니까? 강조 선택하고 각 상태에 대해 별도의 이미지를 지정할 수 있습니다 정상 -

.h 
@property (nonatomic, assign) BOOL isPressed; 

.m 

- (IBAction)buttonPressed:(id)sender { 
    isPressed = !isPressed; 
    if (isPressed) { 
     UIImage *checked = [UIImage imageNamed:@"checked.png"]; 
     [button setImage:checked forState:UIControlStateNormal]; 
    } 
    else { 
     UIImage *unchecked = [UIImage imageNamed:@"unchecked.png"]; 
     [button setImage:unchecked.png forState:UIControlStateNormal]; 
    } 
} 

답변

2

있는 UIButton 여러 가지 상태가있다. 그런 다음 액션 메소드 단지 토글 버튼에 대한 상태를 선택하고 당신을 위해 이미지 변화를 처리합니다 : 당신은 모든 프레스 이벤트 후 버튼의 특정 상태를 변경한다 수행 할 작업을

은, 그건
[button setImage:@"checked.png" forState:UIControlStateSelected]; 
[button setImage:@"unchecked.png" forState:UIControlStateNormal]; 
... 
- (IBAction)buttonPressed:(id)sender { 
    button.selected = !button.selected; 
} 
0

그렇다면 무엇을 해야 할 것.

관련 문제