2011-01-17 4 views
1

Ich versuche, eine benutzerdefinierte Schaltfläche mit einem halbtransparenten Hintergrund und einem nicht transparenten Vordergrund zu erstellen. Ich verwende den folgenden Code ein Hintergrundbild für die benutzerdefinierte Schaltfläche zu erstellen:Wie zeichne ich eine benutzerdefinierte Schaltfläche mit Hintergrund mit einem Alpha-Wert, aber Vordergrund ist normal

UIImage *buttonBg = [UIImage imageNamed:@"ButtonBG_35"]; 
buttonBg = [buttonBg stretchableImageWithLeftCapWidth:14.0 topCapHeight:0]; 

CGSize size = self.button1.bounds.size; 

UIGraphicsBeginImageContext(size); 

[buttonBg drawInRect:CGRectMake(0, 0, size.width, size.height) blendMode:kCGBlendModeNormal alpha:0.33]; 
UIImage *button1BgImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

[self.button1 setBackgroundImage:button1BgImage forState:UIControlStateNormal]; 

Dies funktioniert, wie ich erwarte, wenn der Text in der Schaltfläche platzieren. Wenn ich jedoch ein Bild im Vordergrund der Schaltfläche platziere, ist dieses Bild ebenfalls halbtransparent. Wie verhindere ich, dass das Vordergrundbild transparent ist?

Ich habe versucht, das Bild in die Schaltfläche mit einem Alpha: 1.0 zu zeichnen, aber das hat nichts getan.

Danke für jede Hilfe.

Antwort

1

Keine direkte Lösung für Ihr Problem, sondern ein Workaround: Halten Sie die Schaltfläche "leer" und fügen Sie die Bilder als Unteransichten hinzu - während Sie den Alpha-Wert der Schaltfläche bei 1,0 (oder was auch immer Sie wollen) beibehalten.

+0

Ich probierte die Lösung aus und es führte mich zu einem Problem, das ich mit meinem Vordergrundbild hatte. Während Ihre Lösung die ursprüngliche Lösung funktioniert, hatte ich auch funktioniert. Da sowohl deine als auch deine Arbeit mich zu dem Problem geführt haben, markiere ich deine Antwort als richtig. –

+0

Danke. Was war das Problem? – Eiko

Verwandte Themen