setImage forState方法设置按钮上所有状态的图像

时间:2013-06-23 20:27:56

标签: ios objective-c uibutton uiimage

我有这个小问题,我无法弄明白。我有大约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];

}

2 个答案:

答案 0 :(得分:11)

您为“正常”状态设置的任何属性都将用于未明确设置的所有其他状态。这在UIButton setImage:forState:的文档中有说明。如果您想要其他状态的其他图像,则还需要为其他状态调用setImage:forState:

答案 1 :(得分:1)

如果没有为其他状态指定图像,则将使用“普通”(UIControlStateNormal)状态的图像。因此,明确设置要用于状态UIControlStateSelected的图像。

如果未设置“正常”状态,则使用系统默认值。