Frage

Ich habe ein Bild, das 480x331 und hat einen transparenten Hintergrund ist. Der transparente Teil ist gleich um die Kanten des Bildes. Mein UIButton ist 72x37. Bei der Einstellung ich das Bild als Hintergrundbild in IB für die Schaltfläche in die Schaltfläche die transparenten Ränder des Bildes zeigen als weiß. Ohne ein Bild, ist der Knopf weiß mit abgerundeten Ecken. Ich vermute, dass die weiß ich durch kommen sehen. Wenn ja, es bedeutet, dass die Bild Transparenz funktioniert, aber die weiße Bereich der Schaltfläche zeigt durch.

Wenn ich das Bild, um das Foto Unterkunft UIButton gesetzt, es nicht korrekt skaliert, auch nach Ansichtsmodus zu ändern, und bleibt in seiner vollen Größe.

Haben Sie Vorschläge, welche Eigenschaft ich die Skalierung und Transparenz arbeiten direkt verwenden sollte?

War es hilfreich?

Lösung

Welche Tastentyp verwenden Sie?

Mit den Klängen der es Sie möglicherweise den UIButtonTypeRoundedRect Stil verwenden, aber UIButtonTypeCustom besser geeignet sein. Sie können diese Inspektor-Fenster der im Interface Builder ändern.

Andere Tipps

@Christopher Fairbaim ist Recht, die Verwendung von UIButtonTypeCustom vorzuschlagen. UIButtonTypeRoundedRect Mit gibt Ihnen den weißen Hintergrund in transparenten Bereichen.

Allerdings Verdrahtung Dinge im Interface Builder up hat seine Grenzen. Wenn Sie dynamisch wollen UIViews, UIButtons erzeugen und Vermögenswerte entweder aus einem Datensatz oder aus der Basis von Benutzereingaben, so programmatisch tut, ist der Weg zu gehen.

auf die Schaltfläche erstellen: . (Anmerkung: dies wird auch mit anderen UIButtonTypes arbeiten, aber ich habe UIButtonTypeCustom für dieses besondere Transparenz Beispiel verwendet)

UIButton *btnName = [UIButton buttonWithType:UIButtonTypeCustom];

Um die gewünschten Eigenschaften zu ändern:

btnName.backgroundColor = [UIColor clearColor];
btnName.frame = CGRectMake(100, 100, 72, 37);  //(X coord, Y coord, width, height)
[btnName addTarget:myActionClassName action:@selector(myActionName) forControlEvents:UIControlEventTouchUpInside];

Um Bilder für verschiedene Zustände hinzufügen (nehmen diese transparent .png ist sind):

UIImage *btnNameImageNormal = [UIImage imageNamed:@"btnNameNormal.png"];
[btnName setBackgroundImage:btnMenuImageNormal forState:UIControlStateNormal];
UIImage *btnNameImagePressed = [UIImage imageNamed:@"btnNamePressed.png"];
[btnName setBackgroundImage:btnNameImagePressed forState:UIControlStateHighlighted];

Um die Schaltfläche zu der Ansicht hinzufügen (innerhalb einer Klasse Viewcontroller):

[self addSubview:btnName];

(keine Tippfehler Pardon, wie ich und von einem meiner Projekte eingefügt kopiert und versucht, die Namensgebung zu verallgemeinern.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top