Ich erstelle eine App mit swift in der neuesten Version von Xcode 6 und möchte wissen, wie ich meine Schaltfläche so ändern kann, dass sie einen abgerundeten Rand hat, den ich bei Bedarf selbst anpassen kann. Wie kann ich dann die Farbe des Rahmens selbst ändern, ohne einen Hintergrund hinzuzufügen? Mit anderen Worten, ich möchte eine leicht abgerundete Schaltfläche ohne Hintergrund, nur einen 1pt-Rand einer bestimmten Farbe.
232
titleEdgeInsets
.Um diesen Job im Storyboard zu erledigen (Interface Builder Inspector)
Mithilfe von
IBDesignable
können wir dem Interface Builder Inspector weitere Optionen hinzufügenUIButton
und diese im Storyboard optimieren. Fügen Sie Ihrem Projekt zunächst den folgenden Code hinzu.Legen Sie dann einfach die Attribute für Schaltflächen im Storyboard fest.
quelle
Ich habe eine einfache UIButton-Unterklasse erstellt, die die
tintColor
für ihre Text- und Rahmenfarben verwendet und bei Hervorhebung ihren Hintergrund in die änderttintColor
.Dies verwendet eine UIImage-Erweiterung, die ein Bild aus einer Farbe erstellt. Ich habe diesen Code hier gefunden: https://stackoverflow.com/a/33675160
Dies funktioniert am besten, wenn Sie im Interface Builder die Option Benutzerdefiniert eingeben, da der Standardsystemtyp die Farben geringfügig ändert, wenn die Schaltfläche hervorgehoben wird.
quelle
Diese Klasse basiert auf allen Kommentaren und Vorschlägen in den Antworten und kann auch direkt aus xcode gestaltet werden. Kopieren Sie in Ihr Projekt, fügen Sie einen beliebigen UIButton ein und ändern Sie ihn, um eine benutzerdefinierte Klasse zu verwenden. Wählen Sie nun einfach die Rahmen- oder Hintergrundfarbe aus dem xcode für normale und / oder hervorgehobene Zustände aus.
quelle
Foundation
beim ImportUIKit
wirklich aus?Basierend auf der Antwort von @returntrue konnte ich sie in Interface Builder implementieren.
Um mit dem Interface Builder eine Schaltfläche für runde Ecken zu erhalten, fügen Sie einen Schlüssel
Path = "layer.cornerRadius"
mitType = "Number"
undValue = "10"
(oder einem anderen erforderlichen Wert) in das "User Defined RunTime Attribute
"Identity Inspector
der Schaltfläche ein.quelle
Mit dieser Unterklasse von UIButton können Sie UIButton an Ihre Bedürfnisse anpassen.
Besuchen Sie dieses Github-Repo als Referenz
quelle
Ich denke, der einfachste und sauberste Weg ist die Verwendung eines Protokolls, um Vererbung und Codewiederholung zu vermeiden. Sie können diese Eigenschaften direkt im Storyboard ändern
Aktualisieren
In diesem Link finden Sie ein Beispiel mit dem Dienstprogramm Traceable Protocol
quelle
quelle
Stellen Sie neben dem Tipp sicher, dass Ihre Schaltfläche keiner Unterklasse einer benutzerdefinierten Klasse im Storyboard angehört. In diesem Fall sollte Ihr Code am besten in der benutzerdefinierten Klasse platziert werden. Dies liegt daran, dass Code nur außerhalb der benutzerdefinierten Klasse funktioniert, wenn Ihre Schaltfläche eine Unterklasse der Standardklasse ist UIButton-Klasse und Ausgang davon, hoffe, dies kann jedem helfen, sich zu fragen, warum Eckradios nicht auf meinen Button aus Code angewendet werden.
quelle
...
Ich denke für Radius gerade genug diesen Parameter:
quelle
VERSUCHEN SIE DIESEN Knopfrand mit abgerundeten Ecken
quelle
quelle
Sie können Unterklassen erstellen
UIButton
und@IBInspectable
Variablen hinzufügen , um die benutzerdefinierten Schaltflächenparameter über das StoryBoard "Attribute Inspector" zu konfigurieren. Unten schreibe ich diesen Code auf.quelle
Ich denke, das ist die einfache Form
quelle