我正在实现UIButton的复选框子类。有2个背景图像(开/关)和4个概念状态:
on
- 图片上/未突出显示off
- 关闭图像/未突出显示on & pressed
- 图片/突出显示off & pressed
- 关闭图像/突出显示如果我仅为开启和关闭(UIControlStateNormal
和UIControlStateSelected
)设置背景图片,则按钮会在按住时突出显示。
然而,当on & pressed
时,它使用off图像(正如预期的那样,因为状态为UIControlStateSelected | UIControlStateHighlighted
,因此它使用正常状态图像)
所以我将UIControlStateSelected | UIControlStateHighlighted
的背景图像设置为on图像,但现在禁用了编程突出显示 - 我假设因为如果你为该状态设置了特定的背景图像,那么你可能想要覆盖逻辑亮点。
我不想使用第三张图片,是否可以为UIControlStateSelected | UIControlStateHighlighted
设置背景图片并仍然应用程序化高亮显示?
我在设置背景图片后已经调用了[self setAdjustsImageWhenHighlighted:YES];
。
答案 0 :(得分:0)
我猜您使用的是UIButton
,其类型不是“自定义”,而是“圆形矩形”。在这种情况下,设置背景图像可能会产生意外的副作用,请参阅我的earlier question
我建议将按钮类型更改为“自定义”。当然,你必须自己定义所有属性。