我有一个以编程方式创建并添加到UITableViewCell的UIButton。
我已经成功设置好它,因此,如果您点击按钮并保持按住不放,它将变为我为“突出显示状态”设置的图像,但这还不够好。
当用户点击按钮时,我需要将其完全更改为新图像。如果用户再次点击该按钮,我希望它变回原始图像。
我希望每次点击都会改变图像。现在,如果他们点击并保持按住不放,它将发生变化,但是一旦按住不放,它将切换回原始图像。
这是到目前为止我的按钮代码:
UIImage *addFriendButtonImage = [UIImage imageNamed:@"SliderThumb-Normal-G"];
UIImage *addFriendButtonImageHighlighted = [UIImage imageNamed:@"SliderThumb-Normal"];
UIButton *addFriendButton = [[UIButton alloc]init];
addFriendButton.frame = CGRectMake(237, -10, 64, 64);
[addFriendButton setImage:addFriendButtonImage forState:UIControlStateNormal];
[addFriendButton setImage:addFriendButtonImageHighlighted forState:UIControlStateHighlighted];
我还尝试将新图像的状态设置为“UIControlStateSelected”,但所有操作都会使原始图像变暗。它甚至不会更改为新图像,并且仅在按住按钮时再次显示它的效果。
最佳答案
为UIControlStateHighlighted
和UIControlStateSelected
状态设置图像:
[addFriendButton setImage:addFriendButtonImage forState:UIControlStateNormal];
[addFriendButton setImage:addFriendButtonImageHighlighted forState:UIControlStateHighlighted];
[addFriendButton setImage:addFriendButtonImageHighlighted forState:UIControlStateSelected];
然后听
UIControlEventTouchUpInside
:[addFriendButton addTarget:self action:@selector(handleTouchUpInside:) forControlEvents:UIControlEventTouchUpInside];
然后更新所选状态:
- (void)handleTouchUpInside:(UIButton *)sender {
sender.selected = !sender.selected;
}
关于ios - 轻按时更改UIButton的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22027866/