Wie legen Sie das Bild für einen UIButton im Code fest?
Ich habe das:
UIButton *btnTwo = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnTwo.frame = CGRectMake(40, 140, 240, 30);
[btnTwo setTitle:@"vc2:v1" forState:UIControlStateNormal];
[btnTwo addTarget:self action:@selector(goToOne) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnTwo];
aber nicht sehen, was das Bild dafür einstellen wird.
setImage
was veraltet ist. (Es scheint mir , Sie verwirrenUIButton.setImage
mitUITableViewCell.image
, das ist eine Eigenschaft ist veraltet , wie Sie angegeben.)Mikes Lösung zeigt nur das Bild an, aber alle auf der Schaltfläche festgelegten Titel sind nicht sichtbar, da Sie entweder den Titel oder das Bild festlegen können.
Wenn Sie beide (Ihr Bild und Ihren Titel) festlegen möchten, verwenden Sie den folgenden Code:
quelle
Bevor dies für mich funktionieren würde, musste ich die Größe des Schaltflächenrahmens explizit basierend auf der Bildrahmengröße ändern.
quelle
[listButton sizeToFit]
Im Falle von Swift User
quelle
Sie können es so machen
quelle
quelle
Sie können das Bild auf eine der folgenden Arten einfügen:
quelle
Ich suchte nach einer Lösung, um eine
UIImage
zu meiner hinzuzufügenUIButton
. Das Problem war nur, dass das Bild größer als nötig angezeigt wird. Hat mir nur dabei geholfen:Jedes Mal, wenn ich meine anzeigen möchte,
UIImageView
setze ich die Variable einfachhidden
aufYES
oderNO
. Es könnte andere Lösungen geben, aber ich wurde so oft mit diesem Zeug verwechselt und das löste es und ich musste mich nicht mit internen Dingen befassenUIButton
, die im Hintergrund gemacht werden.quelle
Sorgen Sie sich nicht so sehr darum, die Schaltfläche aus dem Code zu gestalten, das können Sie auf dem Storyboard tun. Das hat bei mir funktioniert, eine Zeile ... einfacher.
quelle
quelle
Swift 3-Version (butt_img muss ein Image-Set im Ordner Assets.xcassets oder Images.xcassets in Xcode sein):
Wenn Sie möchten, dass das Bild so skaliert wird, dass es die Größe der Schaltfläche ausfüllt, können Sie ein
UIImageView
darüber hinzufügen und Ihrem Bild zuweisen:quelle