【问题标题】:Unable to change UIButton image inside UITableViewCell无法更改 UITableViewCell 内的 UIButton 图像
【发布时间】:2018-05-18 07:04:27
【问题描述】:

我在 xib 中创建了一个自定义 UITableViewCell,并为其分配了一个自己的类文件。我已将背景图像分配给 IB 中此自定义单元格内的 UIButton。在我的ViewController 中,我有一个使用此单元格的UITableView,我有以下代码。

 _yesNoCell = (YesNoCell *)[tableView dequeueReusableCellWithIdentifier:@"YesNoCell"];

 // Below code is not working    
 [_yesNoCell.btnYes setImage:[UIImage imageNamed:@"action_selected"] forState: UIControlStateHighlighted];

 [_yesNoCell.btnYes addTarget:self action:@selector(btnYesTap:) forControlEvents:UIControlEventTouchUpInside];

一切正常,btnYesTap 方法按预期调用。 IB中设置的背景图像显示出来,但是,我想要的是在按下按钮(未释放)时设置不同的图像,即UIControlStateHighlighted。上面的代码不起作用。

我什至尝试向按钮添加一个动作:

 [_yesNoCell.btnYes addTarget:self action:@selector(changeImage:) forControlEvents:UIControlEventTouchDown];

并在changeImage方法中更改图像,但没有成功。

我在 SO 上提到过类似的帖子,但似乎都没有解决方案。参考链接:OneTwoThree

非常感谢任何帮助。

【问题讨论】:

  • 您正在将按钮图像更改为突出显示状态,我认为您应该将图像设置为正常状态,例如 [_yesNoCell.btnYes setImage:[UIImage imageNamed:@"action_selected"] forState: UIControlStateNormal];
  • @AbdulRehmanWarraich :这就是我想要的,我想在按下按钮时(尚未释放)显示不同的图像。
  • 我测试了上面的代码,它对我有用
  • 请确认您的图片不为空
  • 然后按住按钮几秒钟

标签: ios objective-c uitableview uibutton


【解决方案1】:

实际上,您将按钮图像设置为突出显示状态,但您的按钮处于正常(默认)状态。所以改变你的按钮状态,如下所示。

斯威夫特 4

    let myImg = UIImage(named: "your-img-name") // your image
    myButton.setImage(myImg, for: .highlighted) // set button image for state
    myButton.isHighlighted = true // change button state

目标-C

UIImage *myImg = [UIImage imageNamed:@"your-img-name"];
[myButton setImage:myImg forState:UIControlStateHighlighted];
[myButton setHighlighted:true];

【讨论】:

    【解决方案2】:

    您可以使用UIControlStateSelected | UIControlStateHighlighted 这样做

    [_yesNoCell.btnYes setImage:[UIImage imageNamed:@"action_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多