2013-06-23 10 views
9

Mam ten mały problem, którego nie mogę zrozumieć. Mam około 16 przycisków i są one połączone jako kolekcja gniazdka z moim kontrolerem. A także mają metodę działania, która powoduje, że przyciski zmieniają swój stan z domyślnego na wybrany. Próbuję zmienić wszystkie obrazy przycisków tylko na domyślny stan. Tak więc uruchamiam pętlę w tablicy i ustawiaję ich obraz na domyślny stan przy użyciu metody setImage: forState:. Jednak metoda zmienia obrazy dla wszystkich stanów (domyślne i wybrane stany).Metoda setImage forState ustawia obraz dla wszystkich stanów na przycisku

Jest to metoda ustawiająca dla mojej kolekcji wylotowej

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

    for (UIButton *button in cardsButton) { 

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

    } 
    [self updateView]; 

} 

Odpowiedz

10

Wszelkie właściwości ustawione na „normalnym” stanie są stosowane do wszystkich innych państw nie są wyraźnie określonymi inaczej. Jest to określone w dokumentach dla UIButton setImage:forState:. Jeśli chcesz inny obraz dla innych stanów, musisz zadzwonić pod numer setImage:forState: również w przypadku innych stanów.

1

Jeśli nie określisz obrazu dla innego stanu, zostanie użyty obraz stanu "normalnego" (UIControlStateNormal). Dlatego jawnie ustaw obraz, który ma być używany dla stanu UIControlStateSelected.

Jeśli "normalny" stan nie jest ustawiony, wówczas używane jest domyślne ustawienie systemu.