2017-06-07 2 views
0

Ich versuche, eine Schaltfläche mit einem Symbol auf der linken Seite etwas Text zu bekommen:Swift UIButton Mit Symbol und Text (nicht mit edgeinsets)

enter image description here

Probleme mit meinem Verständnis von UIButton haben. Hinzufügen eines Titels auf die Taste funktioniert:

import UIKit 

let button = UIButton(frame: CGRect(x: 0, y: 0, width: 300, height: 25)) 
button.backgroundColor = .green 
button.contentHorizontalAlignment = .left 
button.contentVerticalAlignment = .fill 
button.titleLabel!.backgroundColor = .blue 
button.setTitle("639", for: .normal) 
button.setTitleColor(.white, for: .normal) 

enter image description here

aber dann, wenn Sie ein Bild hinzufügen

button.setImage(UIImage(named: "test"), for: .normal) 
button.imageView!.backgroundColor = .clear 
button.imageView!.contentMode = .scaleAspectFit 

enter image description here

hält es Originalgröße (300 x) und schiebt der Titel auf der rechten Seite aus den Tasten Grenzen. (kann es in screenshot nicht sehen, da es nur Knopfrahmen anzeigt)

Was mache ich falsch? Warum behält das Bild seine ursprüngliche Breite bei, obwohl es verkleinert wurde? Was macht contentHorizontalAlignment sogar, wenn es erlaubt, Gegenstände aus dem Rahmen zu schieben?

Ich bin mir bewusst, dass Sie die Einstellungen setzen können, aber dies wird in einer wiederverwendbaren Ansicht verwendet, so dass ich Werte nicht fest codieren kann.

Danke für die Hilfe

+0

was willst du eigentlich? Ich verstehe es nicht. teile ein Bild von dir erwarten –

+0

@elk_cloner aktualisiert op mit Bild von dem, was ich für –

+0

schießen Ich habe Ihnen gerade die Lösung gegeben.Wenn es hilft, dann hoffe, dass Sie meine Antwort akzeptieren. :) –

Antwort

1

Ich habe gerade einen Knopf wie, was Sie gesagt haben.

Übrigens, warum verwenden Sie nicht inset.Apple hat uns die Möglichkeit gegeben, dies zu verwenden.Dann warum sollten wir das nicht verwenden?

Hinweis: Sie müssen versuchen, das Bild und den Text richtig zu positionieren.

enter image description here

Automatische Anordnung:

enter image description here

Und Einschub:

enter image description here

Wenn es nicht korrekt ist, sagte ich yo Du musst Versuch und Irrtum machen. fröhliche Codierung. :)