我有这个小问题,我无法弄明白。我有大约16个按钮,它们作为插座集合连接到我的控制器。他们还有一个动作方法,使按钮将其状态从默认状态更改为选定状态。我试图改变所有按钮的图像只为默认状态。所以我在数组中运行一个循环,并使用setImage:forState:method将其图像设置为默认状态。但是,该方法会更改所有状态的图像(默认和选定状态)。
这是我的插座集合的setter方法
- (void) setCardsButton:(NSArray *)cardsButton
{
_cardsButton = cardsButton;
for (UIButton *button in cardsButton) {
[button setImage:[UIImage imageNamed:@"card.png"] forState:UIControlStateNormal];
}
[self updateView];
}
答案 0 :(得分:11)
您为“正常”状态设置的任何属性都将用于未明确设置的所有其他状态。这在UIButton setImage:forState:
的文档中有说明。如果您想要其他状态的其他图像,则还需要为其他状态调用setImage:forState:
。
答案 1 :(得分:1)
如果没有为其他状态指定图像,则将使用“普通”(UIControlStateNormal
)状态的图像。因此,明确设置要用于状态UIControlStateSelected
的图像。
如果未设置“正常”状态,则使用系统默认值。