UIButton操作方法在执行时不显示任何结果。基本上UIButton默认情况下在按下UIButton时显示Bookmark-N图像,它应该用Bookmark-YES图像替换Bookmark-N。
当按下UIButton时,它不会替换图像而不做任何事情。
@property (weak, nonatomic) IBOutlet UIButton *bookmarkbtn;
- (IBAction)bookmarkAction:(id)sender;
- (IBAction)bookmarkAction:(id)sender {
if ( _bookmarkbtn.tag)
{
[_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"] forState:UIControlStateNormal];
}
else
{
[_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"] forState:UIControlStateNormal];
}
}
我认为某些事情与这个陈述有关
if ( _bookmarkbtn.tag)
因为这句话如果是真的那么它将执行休息。
任何想法请如何解决此声明。
答案 0 :(得分:2)
首先设置按钮选择的图像和普通图像。
[_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"]
forState:UIControlStateNormal];
[_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"]
forState:UIControlStateSelected];
并在按下按钮时将按钮的状态更改为选中状态。 使用您的_bookmarkbtn标记检查发件人代码。
- (IBAction)bookmarkAction:(id)sender {
if ( _bookmarkbtn.tag == sender.tag)
{
_bookmarkbtn.selected = !_bookmarkbtn.selected;
}
}
答案 1 :(得分:1)
示例代码:
- (IBAction)bookmarkAction:(id)sender
{
if ( _bookmarkbtn.tag)
{
[_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-Y.png"] forState:UIControlStateNormal];
_bookmarkbtn.tag = 0;
}
else
{
[_bookmarkbtn setImage:[UIImage imageNamed:@"Bookmark-N.png"] forState:UIControlStateNormal];
_bookmarkbtn.tag = 1;
}
}