Ist es möglich, die Eigenschaften von UIView-Rändern (Farbe, Dicke usw.) direkt vom Interface Builder aus zu steuern, oder kann ich dies nur programmgesteuert tun?
ios
uiview
interface-builder
border
matteo.cajani
quelle
quelle
Antworten:
Tatsächlich können Sie einige Eigenschaften der Ebene einer Ansicht über den Interface Builder festlegen. Ich weiß, dass ich die Rahmenbreite und den Eckradius einer Ebene über xcode festlegen kann. borderColor funktioniert nicht, wahrscheinlich weil die Ebene eine CGColor anstelle einer UIColor möchte.
Möglicherweise müssen Sie Strings anstelle von Zahlen verwenden, aber es funktioniert!
quelle
Die Antwort von Rich86Man ist korrekt, aber Sie können Kategorien verwenden, um Eigenschaften wie layer.borderColor zu vertreten. (Vom konventionellen C CocoaPod)
CALayer + XibConfiguration.h:
CALayer + XibConfiguration.m:
Das Ergebnis wird zur Laufzeit angezeigt, nicht in Xcode.
Bearbeiten : Sie müssen außerdem
layer.borderWidth
mindestens 1 festlegen , um den Rand mit der ausgewählten Farbe anzuzeigen.In Swift 2.0:
In Swift 3.0:
quelle
Ähnliche Antwort zu iHulks, aber in Swift
Fügen Sie Ihrem Projekt eine Datei mit dem Namen UIView.swift hinzu (oder fügen Sie diese einfach in eine beliebige Datei ein):
Dies ist dann im Interface Builder für jede Schaltfläche, Bildansicht, Beschriftung usw. im Dienstprogrammbedienfeld> Attributinspektor verfügbar:
Hinweis: Der Rahmen wird nur zur Laufzeit angezeigt.
quelle
@IBDesignable
vom Anfang der Erweiterung entfernte.Sie können eine Kategorie von UIView erstellen und diese in die .h-Datei der Kategorie einfügen
Fügen Sie dies nun in die .m-Datei ein
und das auch in. m Datei
Jetzt sehen Sie dies in Ihrem Storyboard für alle UIView-Unterklassen (UILabel, UITextField, UIImageView usw.)
Das ist es .. Keine Notwendigkeit, eine Kategorie irgendwo zu importieren, fügen Sie einfach die Dateien der Kategorie im Projekt hinzu und sehen Sie diese Eigenschaften im Storyboard.
quelle
Für Swift 3 und 4 gibt es Folgendes, wenn Sie bereit sind,
IBInspectable
s zu verwenden :quelle
Dies kann zwar die Eigenschaften festlegen, spiegelt sich jedoch nicht in IB wider. Wenn Sie also im Wesentlichen Code in IB schreiben, können Sie dies auch in Ihrem Quellcode tun
quelle
Wenn Sie Zeit sparen möchten, verwenden Sie einfach zwei
UIViews
übereinander, wobei die hintere die Rahmenfarbe und die vordere kleinere Farbe ist, um den Randeffekt zu erzielen. Ich denke auch nicht, dass dies eine elegante Lösung ist, aber wenn Apple sich ein bisschen mehr darum kümmert, sollten Sie dies nicht tun müssen.quelle
Es ist absolut nur möglich, wenn Sie
layer.masksToBounds = true
Sachen einstellen und ausruhen.quelle
Es ist also immer die perfekte Antwort, den Code zu verwenden. Erstellen Sie einfach eine IBOutlet-Instanz der UIView und fügen Sie die Eigenschaften hinzu
Kurze Antwort :
Lange Antwort :
Abgerundete Ecken von UIView / UIButton usw.
Randdicke
Randfarbe
quelle
Bitte fügen Sie diese 2 einfachen Codezeilen hinzu:
Es wird gut funktionieren.
quelle