9

我有一个我无法弄清楚的小问题。我有大约 16 个按钮,它们作为插座集合连接到我的控制器。它们还有一个操作方法,可以使按钮的状态从默认更改为选中。我试图将所有按钮的图像更改为仅默认状态。所以我通过数组运行一个循环,并使用 setImage: forState: 方法将它们的图像设置为默认状态。但是,该方法会更改所有状态(默认和选定状态)的图像。

这是我的插座集合的设置方法

- (void) setCardsButton:(NSArray *)cardsButton
{
    _cardsButton = cardsButton;

    for (UIButton *button in cardsButton) {

         [button setImage:[UIImage imageNamed:@"card.png"] forState:UIControlStateNormal];

    }
     [self updateView];

}
4

2 回答 2

13

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

于 2013-06-23T20:32:53.403 回答
3

如果您未指定其他状态的图像,则将使用“正常” ( UIControlStateNormal) 状态的图像。因此,明确设置要用于 state 的图像UIControlStateSelected

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

于 2013-06-23T20:33:13.167 回答