【问题标题】:UIButton action method is not doing anythingUIButton 操作方法没有做任何事情
【发布时间】:2013-08-03 18:21:49
【问题描述】:

UIButton Action 方法在执行时不显示任何结果。基本上 UIButton 默认显示 Bookmark-N 图像,当 UIButton 被按下时它应该用 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)

因为这个语句如果为真,那么才会执行rest。

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

【问题讨论】:

  • 您是否将按钮连接到界面生成器中的 ibaction?
  • 编辑:当你在 if 上设置断点时会发生什么? 'tag' 的值是多少,顺便说一句,它是一个 nsinteger,而不是布尔值。
  • 未显示任何值
  • 如果标签没有值,它将执行 else 块。弄清楚这是基本的东西。
  • 只要确保 _bookmarkbtn 有一个值。

标签: iphone objective-c ios6


【解决方案1】:

首先设置按钮选择图像和普通图像。

        [_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;
     }

}

【讨论】:

  • 当我使用这个语句 if (_bookmarkbtn.tag == sender.tag) 它给了我错误属性标签在强 id 类型的对象上找不到,然后我定义了 bool BOOL isSelected;并使用 if ( _bookmarkbtn.isSelected ==YES) 但仍然无法正常工作。
【解决方案2】:

示例代码:

- (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;
    }
}

【讨论】:

  • 为什么要在活动结束后设置标签?你想制作一个切换按钮吗?
猜你喜欢
  • 2020-10-21
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 2016-10-02
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多