2011-08-24 9 views
1

버튼의 태그 만 가지고있을 때 버튼의 이미지를 어떻게 바꿀 수 있습니까? 예를 들어 나는 20 개의 버튼이 있고 태그는 0에서 19로 설정되어있다. 이제 어떤 액션의 응답으로 나는 그 버튼의 태그 5를 가지고 있고 이제는 그 버튼의 이미지를 바꾸고 싶다. 어떻게 가능할 수 있니?태그의 도움으로 버튼의 이미지를 변경하는 방법은 무엇입니까?

for (UIButton *button in self.view.subviews) { 
     if (button.tag == 5) { 
      [button setBackgroundImage:[UIImage imageNamed:@"new-imagepng"] forState:UIControlStateNormal]; 
     } 
    } 

을하지만 그것을 확인하지 않은 : 당신이 그것을 사용할 수 있습니다 생각

답변

3

도와주세요. 당신이 맞는 볼

UIButton *button5 = [superView viewWithTag:5]; 

그런 다음 버튼의 속성을 수정할 수 있습니다 :

2

다음 코드는 당신이 이후에있는 버튼 (superView 당신의 버튼을 누른 무엇이든보기를 의미)를 제공합니다.

2
UIButton *button = (UIButton *)[myView viewWithTag:myTag]; 
[button setImage:... forState:...]; 

myView 변수는 20 버튼의 수퍼 뷰입니다. 태그에서 UIButton 객체를 가져올 수 있으며 상태에 맞게 이미지를 설정할 수 있습니다.

0

모든 버튼의 action을 동일하게 말하십시오 (예 : @(selector)buttonPressed:). 그런 다음 핸들러에서이 작업을 수행 :

-(void)buttonPressed:(id)sender { 
    UIButton *button = (UIButton *) sender; 
    int tag = button.tag; 
    // respond as you wish using tag... for example: 
    UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"img%02d.png", tag]]; 
    [button setImage:image forState:UIControlStateNormal]; 
} 

한 번 더 경고 : 모든 UIView의 기본 tag가보다 효율적으로 사용하는 정수 1 ~ 20보다는 19 0 ~ 사실에서 발생할 수있는 당신이 실수를 방지이 방법이라고

관련 문제