2013-09-24 8 views
8

Creo un UICollectionView e aggiungo una singola cella che è solo una sottoview è un UIButton. Quel pulsante ha il suo titolo e set di immagini. Ho verificato che i dati dell'immagine siano corretti nel debugger.Perché un UICollectionViewCell con un UIButton ha un'immagine monocromatica/colorata?

Quando il pulsante viene disegnato sullo schermo, vedo il testo e l'immagine, tuttavia l'immagine appare come se fosse stata riempita con il colore della sfumatura, oscurando tutta l'immagine tranne la sua forma.

Cosa mi manca qui per avere questo spettacolo come un normale pulsante dovrebbe?

Aggiornamento

Si scopre questo non è specifico per UICollectionView ma piuttosto tutti UIButtons in iOS7.

iOS 7 rende tutte le immagini nei pulsanti si comportano come immagini modello utilizzando il canale alfa dell'immagine in concerto con il colore della tinta per produrre l'immagine (molto simile alle immagini in una barra delle schede). C'è una nuova proprietà renderingMode su UIImage che è in default a "automatico" che consente al contesto a decidere (che è modello di stile per i pulsanti)

Questo può essere aggirato utilizzando il nuovo imageWithRenderingMode: metodo su UIImage:

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

risposta

0

Il modo più semplice per evitare ciò è utilizzare un diverso UIButtonType. E 'UIButtonTypeSystem su IOS 7 che ha questo comportamento, quindi è possibile utilizzare un pulsante personalizzato invece:

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

Quando il colore di sfondo UIButton lightText in questo modo, non si chiuderà l'immagine del pulsante.

UIButton.backgroundColor = UIColor.lightText 
Problemi correlati