【发布时间】: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