Warum hat eine UICollectionViewCell mit einem UIButton ein monochromes / getöntes Bild?

8

Ich erstelle eine UICollectionView und füge eine einzelne Zelle hinzu, deren einzige Unteransicht eine UIButton ist. Diese Schaltfläche hat Titel und Bild festgelegt. Ich habe überprüft, dass die Bilddaten im Debugger korrekt sind.

Wenn der Knopf auf dem Bildschirm gezeichnet wird, sehe ich den Text und das Bild, aber das Bild sieht so aus, als ob es mit der Tönungsfarbe gefüllt wäre, wodurch das gesamte Bild außer seiner Form verdeckt wird.

Was fehlt mir hier um das als normale Schaltfläche angezeigt zu bekommen?

Aktualisieren

Es stellt sich heraus, dass dies nicht spezifisch für UICollectionView ist, sondern für alle UIB-Schaltflächen in iOS7.

iOS 7 bewirkt, dass sich alle Bilder in Schaltflächen als Vorlagenbilder verhalten, wobei der Alpha-Kanal des Bildes in Übereinstimmung mit der Farbtonfarbe verwendet wird, um das Bild zu erzeugen (ähnlich den Bildern in einer Registerkartenleiste). Es gibt eine neue renderingMode -Eigenschaft auf UIImage, die standardmäßig auf "automatisch" eingestellt ist, wodurch der Kontext entscheiden kann (welcher Vorlagenstil für Schaltflächen verwendet wird)

Dies kann mit der neuen imageWithRenderingMode : Methode für UIImage:

%Vor%     
Code Monkey 24.09.2013, 13:52
quelle

2 Antworten

0

Der einfachste Weg, dies zu vermeiden, ist die Verwendung eines anderen UIButtonType . Es ist UIButtonTypeSystem auf IOS 7, das dieses Verhalten hat, so dass Sie stattdessen eine benutzerdefinierte Schaltfläche verwenden können:

%Vor%     
knellr 07.01.2014 20:27
quelle
0
  

Wenn die Hintergrundfarbe des UIButton auf diese Weise LightText ist, wird das Schaltflächenbild nicht geschlossen.

%Vor%     
Ayşe 19.10.2017 08:18
quelle