2014-04-19 7 views
0

다른 단추를 클릭 할 때 일부 단추의 배경 이미지를 변경할 수 있습니까?다른 단추에서 UIButton 배경 이미지 변경

기본적으로 10 개의 버튼이 있으며 사용자가 현재 클릭 한 버튼을 알고 싶습니다. 따라서 각 버튼에는 2 개의 이미지가 있습니다. 하나는 선택이고 하나는 선택되지 않습니다.

모든 버튼의 배경 이미지를 재설정하는 기능을 만들고 싶습니다. 그리고 각 버튼의 메소드에서이 재설정 기능을 추가 한 다음 해당 버튼의 배경 이미지를 변경합니다.

누군가가 가능한 방법을 제안 할 수 있습니까?

단추를 클릭하면 단추의 배경 이미지를 변경하는 방법을 알고 있습니다.

내 버튼이 어떻게 보면이 같은 각각의 버튼 구성 : 등

- (IBAction)posterButton:(id)sender {} 
- (IBAction)colorInvertButton:(id)sender {} 

..

+0

당신이 버튼 단지를 참조 할 필요가있다 "재설정"처리하는 코드를 다른 단추. 실제로 각 버튼의 핸들러에서하는 것과 다른 것은 아닙니다. – rmaddy

+0

.m 파일의 버튼에 대해 Action 기능 만 추가했습니다. .h 파일에서도 속성을 만들어야합니까? – rbk

+0

모든 버튼에 대한 참조가 필요하므로 모든 버튼에 대한 속성이 필요합니다. – rmaddy

답변

0

가있는 UIButton에 대한 문서 조회

[button setControlImage:selectedImage forState:UIControlStateSelected]; 
[button setControlImage:unselectedImage forState:UIControlStateNormal]; 

를 ^^이 또한 할 수있다 인터페이스 빌더에서 완료 btw.

UIControlStateNormal | UIControlStateHighlightedUIControlStateSelected | UIControlStateHighlighted도 있지만 선택 사항입니다.

단추에는 UIControl으로부터 상속 된 선택 상태도 있습니다. 당신은 한 번에 하나의 선택 버튼을 원한다면

,이 (_selectedButton는 인스턴스 변수로 선언되어야한다) 시도 :

- (UIButton *)selectedButton { 
    return _selectedButton; 
} 
- (void)setSelectedButton:(UIButton *)b { 
    if(b != _selectedButton) { 
     _selectedButton.selected = NO; 
     b.selected = YES; 
     _selectedButton = b; 
    } 
}