我有3个不同的UIButtons为每个图像分组。我有每个图像的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];
}
有没有在做这更好的办法?
感谢, 库尔顿
为什么不给每个按钮一个独特的标签? – PengOne
这一切都是从服务器完成的,每个图像都有一个唯一的ID。每个按钮都有一个按钮。所以如果我给了他们不同的id,它就不能匹配正确的图像。 – iosfreak