2011-07-03 6 views
0

그룹화 된 각 이미지에 대해 3 가지 UIButton이 있습니다. 각 이미지에 ID가 있습니다. 지금은 각 이미지에 대한 특수 ID가 있으며 그 태그로 버튼을 설정합니다.UIButton 용 특수 태그?

내가 탭하면 선택한 이미지의 배경 이미지를 변경하고 싶습니다. 문제는 3 개의 버튼에 동일한 태그가있어 오른쪽 버튼의 배경 이미지를 변경할 수 없다는 것입니다. 이 일에 더 나은 방법이

UIButton *likeButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[likeButton setBackgroundColor:[UIColor clearColor]]; 
[likeButton setBackgroundImage:[UIImage imageNamed:@"icon_like_button.png"] forState:UIControlStateNormal]; 
[likeButton setBackgroundImage:[UIImage imageNamed:@"icon_like_button_hit.png"] forState:UIControlStateSelected]; 
[likeButton setBackgroundImage:[UIImage imageNamed:@"icon_like_button_hit.png"] forState:UIControlStateHighlighted]; 
[likeButton setBackgroundImage:[UIImage imageNamed:@"icon_like_button_hit.png"] forState:UIControlStateDisabled]; 
[likeButton setFrame:CGRectMake(13, 52 + (285 * count), 51, 55)]; 
[likeButton addTarget:self action:@selector(likeDudle:) forControlEvents:UIControlEventTouchDown]; 
[likeButton setTag:theIdInt]; 
[likeButton setTitle:@"no_like" forState:UIControlStateNormal]; 
[scrollView addSubview:likeButton]; 

- (IBAction)likeDudle: (id)sender { 

NSInteger tagId = ((UIControl*)sender).tag; 

UIButton *tempButton = (UIButton*)[scrollView viewWithTag:tagId]; 

NSLog(@"likeDudle: %d // %@", tagId, tempButton.titleLabel.text); 

if ([tempButton.titleLabel.text isEqualToString:@"no_like"]) { 
    [tempButton setBackgroundImage:[UIImage imageNamed:@"icon_like_button_hit.png"] forState:UIControlStateNormal]; 
    [tempButton setTitle:@"like" forState:UIControlStateNormal]; 
} else if ([tempButton.titleLabel.text isEqualToString:@"like"]) { 
    [tempButton setBackgroundImage:[UIImage imageNamed:@"icon_like_button.png"] forState:UIControlStateNormal]; 
    [tempButton setTitle:@"no_like" forState:UIControlStateNormal]; 
} 

있습니까 : 여기

내가 가진 무엇인가?

감사합니다, 당신은 10 개 이하의 이미지가있는 경우 Coulton

+0

왜 각 버튼에 고유 한 태그를 지정하지 않습니까? – PengOne

+0

그것은 모두 서버에서 수행되며 각 이미지는 고유 ID를 얻습니다. 각각에 대해 하나의 버튼이 있습니다. 그래서 다른 아이디를 주면 올바른 이미지와 일치하지 않을 것입니다. – iosfreak

답변

0

는 다음 i 번째 버튼 태그 i*10+image.tag을 제공합니다. 그런 다음 image.tagbutton.tag % 10까지 검색 할 수 있으며 버튼 태그가 고유합니다. int b = button.tag/10까지 버튼 만 정보를 검색 할 수도 있습니다.

또한 버튼 이미지의 태그에 button.backgroundImage.tag으로 액세스 할 수 있으므로 사용법에 따라 버튼에 별도의 태그 시스템이있을 수 있습니다.

+0

나는 그것에 대해 생각했다. 그러나 나는 끝없는 스크롤러 타입을 가지고 있으므로 바닥에 도달하면 더 많은 하중을 받는다. 한 가지 아이디어는 ID에 10 진수를 부여하는 것이었지만 그냥 둥글게하고 싶습니다. – iosfreak

+0

어떻게 backgroudImage에 태그를 설정합니까? – iosfreak

+0

'button.backgroundImage'는'UIImage'의 인스턴스이므로'tag' 속성을 가지고 있습니다. 그냥'button.backgroundImage.tag = 0;' – PengOne