为突出显示状态设置背景图像将删除自动突出显示

时间:2013-04-18 15:08:54

标签: ios uibutton

我正在实现UIButton的复选框子类。有2个背景图像(开/关)和4个概念状态:

  • on - 图片上/未突出显示
  • off - 关闭图像/未突出显示
  • on & pressed - 图片/突出显示
  • off & pressed - 关闭图像/突出显示

如果我仅为开启和关闭(UIControlStateNormalUIControlStateSelected)设置背景图片,则按钮会在按住时突出显示。

然而,当on & pressed时,它使用off图像(正如预期的那样,因为状态为UIControlStateSelected | UIControlStateHighlighted,因此它使用正常状态图像)

所以我将UIControlStateSelected | UIControlStateHighlighted的背景图像设置为on图像,但现在禁用了编程突出显示 - 我假设因为如果你为该状态设置了特定的背景图像,那么你可能想要覆盖逻辑亮点。

我不想使用第三张图片,是否可以为UIControlStateSelected | UIControlStateHighlighted设置背景图片并仍然应用程序化高亮显示?

我在设置背景图片后已经调用了[self setAdjustsImageWhenHighlighted:YES];

1 个答案:

答案 0 :(得分:0)

我猜您使用的是UIButton,其类型不是“自定义”,而是“圆形矩形”。在这种情况下,设置背景图像可能会产生意外的副作用,请参阅我的earlier question 我建议将按钮类型更改为“自定义”。当然,你必须自己定义所有属性。