Wie zentriere ich ein Bild in einem UIButton, ohne es in Swift in beide Richtungen zu dehnen?

Ich erstelle eine benutzerdefinierte Tastatur und muss das Bild des Shift-Symbols in der Shift-Schaltfläche zentrieren. Das Bild ist 100 x 100 Pixel groß.

Der Schaltflächenrahmen im Hochformat ist jedoch36pt x 38pt, und in der Landschaft ist es68pt x 32pt. Ich habe versucht, das Bild mit der Schaltfläche "Bild einfügen" zu zentrieren. Dies ist jedoch nicht der Fall.

Ich habe es selbst versucht und die Bildkanteneinfügungen auf @ gesetz(25,25,25,25) zentriert das Bild in beiden Größen. Das Symbol wird jedoch zu klein, um es zu sehen.

shiftButton.setImage(UIImage(named: "shift"), forState: .Normal)

shiftButton.imageEdgeInsets = UIEdgeInsetsMake(0,0,0,0)

Ich mache den Button programmatisch. Und ich brauche die Schaltfläche zum Skalieren, um das Seitenverhältnis beizubehalten, d. H.1:1. Seine maximale Breite oder Höhe ist immer an die Höhe des Buttons gebunden. Die Bildbreite / -höhe sollte maximal der Höhe der Schaltfläche entsprechen. Außerdem sollte es nicht gedehnt werden, um das Symbol zu verzerren. Der Knopf selbst kann sich jedoch dehnen.

Ich muss das Bild entsprechend dem Schaltflächenrahmen skalieren, aber das Seitenverhältnis beibehalten. Es kann verkleinert oder vergrößert werden, sollte aber immer das Seitenverhältnis 1: 1 beibehalten.

Haben Sie Vorschläge zur Lösung dieses Problems?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage