UIButton动作方法没有做任何事情

时间:2013-08-03 18:21:49

标签: iphone objective-c ios6

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)

因为这句话如果是真的那么它将执行休息。

任何想法请如何解决此声明。

2 个答案:

答案 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;
    }
}