2013-09-24 9 views
8

Tworzę UICollectionView i dodajemy pojedynczą komórkę, której jedynym widokiem jest UIButton. Ten przycisk ma ustawiony tytuł i obraz. Sprawdziłem, czy dane obrazu są poprawne w debugerze.Dlaczego UICollectionViewCell z UIButton ma obraz monochromatyczny/przyciemniony?

Po narysowaniu przycisku widzę tekst i obraz, jednak obraz wygląda tak, jakby wypełniony był kolorem odcienia, przesłaniając cały obraz inny niż jego kształt.

Czego mi tu brakuje, aby ten program był wyświetlany normalnie?

Aktualizacja

Okazuje się, to nie jest specyficzne dla UICollectionView ale raczej wszystkie UIButtons w iOS7.

System iOS 7 powoduje, że wszystkie obrazy w przyciskach zachowują się jak obrazy szablonów przy użyciu kanału alfa obrazu w połączeniu z kolorem tinty w celu utworzenia obrazu (podobnie jak obrazy na pasku kart). Jest to nowy obiekt renderingMode na UIImage który jest domyślnie na „automatyczny”, który pozwala kontekst zdecydować (co jest szablon styl dla przycisków)

ten można obejść przy użyciu nowego imageWithRenderingMode: metodę na UIImage:

UIImage* myImage = [UIImage imageNamed:@"Foo.png"]; 
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
[button setImage:myImage forState:UIControlStateNormal]; 

Odpowiedz

0

Najprostszym sposobem uniknięcia tego jest użycie innego UIButtonType. To UIButtonTypeSystem na iOS 7, który ma ten problem, więc można użyć przycisku niestandardowego zamiast:

UIButton *button = [UIButton buttonWithType: UIButtonTypeCustom]; 
[button setImage:myImage forState:UIControlStateNormal]; 
0

Kiedy kolor tła lightText na UIButton w ten sposób, że nie będzie zamknąć przycisk obraz.

UIButton.backgroundColor = UIColor.lightText 
Powiązane problemy