2009-06-13 7 views
4

Ich habe eine Kugel in UImageView in Interface Builder zugewiesen. Ein IBOutlet von der UIImageView ist mit einem entsprechenden UIViewController verbunden. Das Bild hat einen weißen Hintergrund. Wenn ich es der UIImageView in IB zuweise, ist der Hintergrund transparent. In IB habe ich das UIImageView auf einen transparenten Hintergrund und eine Aspektfüllung gesetzt.Bildhintergrund in UIImageView zur Laufzeit entfernen

Wenn ich die UIImageView ein Bild zur Laufzeit zuweisen:

der UIImageView Platz hat einen weißen Hintergrund, wo der Ball nicht angezeigt. Bedeutung alle vier Ecken. Was ist der Unterschied, dass die IB-Version zur Laufzeit keinen weißen Hintergrund zeigt und die Programmversion dies tut?

Antwort

6

Stellen Sie sicher, dass Sie self.ball.opaque = NO; zusätzlich zur Einstellung der zu löschenden Hintergrundfarbe festlegen. Andernfalls wird weiterhin ein weißer Hintergrund gezeichnet. Ich glaube, dass Sie beide festlegen müssen, ob Sie IB oder Xcode verwenden, um die Ansicht zu erstellen, aber IB hat sie möglicherweise beide für Sie festgelegt.

+0

Vielen Dank für beide Vorschläge. Mein Fehler. Es gab eine PNG-Version der JPGs mit transparentem Hintergrund. IB verwendete die PNGs, während ich die JPGs programmatisch verwendete. Pfui! Wenn das Bild jedoch keinen transparenten Hintergrund hat, können Sie auf einfache Weise nicht viel dagegen tun. Undurchsichtig ändert es nicht. Ich habe auch versucht, die Deckkraft einzustellen, indem ich das Quarz-Framework und self.ball.layer.opacity = 0.0f; aber ein Nein, wieder zu gehen. Das Ändern des Bildes ist die einfachste Route. – 4thSpace

2

Wenn Sie Hintergrund programmgesteuert entfernen müssen, können Sie sich auf "Bitmap Images and Image Masks" Leitfaden beziehen. Ich habe keine andere Idee in diesem Punkt ... nur mit CGImageCreateWithMaskingColors.

Wenn Ihr * .png (oder eine Grafik-Ressource-Datei) nicht integrierte Transparenz (nur weißer Hintergrund), aber mit IB sieht es transparent wie - dann 1 für Ihre UIImageView alpha Eigenschaft geringer sein kann und Sie sehen teilweise transparentes Bild.