我需要2 个不同的图像来突出显示UIButton
.
我有这些代码行:
- (IBAction)buttonPressed:(id)sender
{
UIImage *followImageHighlighted = [UIImage imageNamed:@"follow-hilite.png"];
UIImage *unfollowImageHighlighted = [UIImage imageNamed:@"unfollow-hilite.png"];
if ([sender isSelected]) {
// set this image for the next time the button will pressed
[sender setImage:unfollowImageHighlighted forState:UIControlStateHighlighted];
} else {
// set this image for the next time the button will pressed
[sender setImage:followImageHighlighted forState:UIControlStateHighlighted];
}
}
- (void)viewDidLoad
{
// ...
UIImage *followImage = [UIImage imageNamed:@"follow.png"];
UIImage *unfollowImage = [UIImage imageNamed:@"unfollow.png"];
[self.followButton setImage:followImage forState:UIControlStateNormal];
[self.followButton setImage:unfollowImage forState:UIControlStateSelected];
}
问题是每次按下按钮时,我都会看到突出显示的图像follow-hilite.png
。
我不能更改道路上按钮的突出显示图像吗?
我认为这是一个不好的限制,因为当按钮被选择(因此,“关注”)并且用户按下它时,他会看到默认图像,然后当它触摸图像时,图像是选定状态和网络操作时的图像完成然后按钮图像正确切换到选定的一个。
想法?
编辑
- (IBAction)followButtonTapped:(id)sender
{
BOOL isFollowed = [sender isSelected];
NSString *urlString = isFollowed ? kUnfollowURL : kFollowURL;
// operation [...]
[self.followButton setSelected:(isFollowed) ? NO : YES];
self.user.followed = !isFollowed;
}
我更好地解释了这个问题:
- 默认状态下的按钮:白色背景上的黑色文本
- 处于选中状态的按钮:黑色背景上的白色文本
如果没有关注目标用户,则该按钮处于默认状态,如果我尝试按下它,我会看到正确的突出显示图像。
但是,如果目标用户被关注并且按钮处于选中状态,如果我尝试按下它(并按住手指),我会看到白色背景上带有黑色文本的按钮。这很丑陋,这是我的问题。