Wie erstelle ich eine 1px Linie in Interface Builder?
Hinweis, ich bin auf der Suche, um eine 1px Linie, nicht eine 1pt-Linie. Sinn sollte es sein 1px unabhängig davon, screen scale (so 0.5 pt auf Retina-Geräten).
Kann ich dies programmatisch tun, aber ich kann es in den Interface Builder? Zum Beispiel kann ich nicht setzen eine UIView eine Höhe von weniger als 1.
Wenn ich es tun kann, in IB dann brauche ich nicht zu erklären, eine Steckdose und legen Sie manuell die Rahmen in awakeFromNib
.
InformationsquelleAutor der Frage i_am_jorf | 2014-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Xcode 7.3 rechten unteren Ecke: die Höhe hinzu Einschränkung in Pin.
InformationsquelleAutor der Antwort user5158717
Nur für den Fall jemand anderes kommt, Sie wollen wissen, wie es getan werden kann programmgesteuert, heres, wie Sie es tun:
Interface Builder
Machen Sie eine Höhe Einschränkung bei der IB, um die gewünschte Ansicht und festlegen der Konstante auf 1.
Dann müssen Sie STRG+Ziehen aus der Einschränkung in Ihre benutzerdefinierte Ansicht oder ViewController.
Wenn der Xib geladen wird, werden es in
awakeFromNib
oderviewDidLoad
Sie sind die Konstante der Einschränkung auf die Skalierung der Anzeige:Swift
Objective-C
Genießen
InformationsquelleAutor der Antwort Daniel Galasko
Durch die Schaffung dieses kleinen Unterklasse der
NSLayoutConstraint
ich bin jetzt in der Lage, hinzufügen 1px-Linien in IB:Jede Einschränkung mit einem Wert von 1 gesetzt werden kann, Klasse
NSLayoutConstraintHairline
um die ständige effektiv 1px statt 1 Pkt.Wenn Sie jemals entscheiden, zu ändern, die Konstante einen anderen Wert, es wird nur eine Arbeit wie jede andere Einschränkung.
InformationsquelleAutor der Antwort mvds
Mit xCode 6 und Einführung von
@IBInspectable
und@IBDesignable
keywords es ist definitiv möglich und ziemlich einfach. Keine Notwendigkeit für Unterklasse/Steckdose, nichts.Können Sie eine Erweiterung (Kategorie) für NSLayoutConstraint mit folgenden code (swift):
Dann können Sie brauchten Einschränkung in Ihrem IB.
Gehen Sie auf die Eigenschaften und den Wert festlegen.
Im obigen Fall wird das Rendern einer Ansicht mit 1 px Höhe auf 1x, 2x und 3x-Geräte.
InformationsquelleAutor der Antwort Nevs12
Ich erstellt
NSLayoutConstraint
Unterklasse:Dann erstellen Sie einfach Ihre anzeigen im interface builder hinzufügen Höhe Einschränkung
werden und seine Klasse
HairlineConstraint
.Getan.
InformationsquelleAutor der Antwort Marius Kažemėkaitis
Swift:
InformationsquelleAutor der Antwort Rudolf Adamkovič
EDIT: Diese Antwort war für @2x nur Geräte. Damals @3x war noch nicht auf dem Markt!
Heute
@mdvs
's Antwort scheint zu sein, das sauberste.Machen 1px Linie in IB ist hart, auch für retina-only-Geräte. Endlich habe ich es erreicht mithilfe der
User Defined Runtime Attributes
.Hier ein screenshot für die Einstellung der Höhe-Einschränkung auf 0,5 px (die 1px auf retina-Geräten).
InformationsquelleAutor der Antwort Michał Zygar
Basierend auf @Nevs12 's Antwort und Kommentare, ich denke, es macht mehr Sinn, so etwas:
InformationsquelleAutor der Antwort farzadshbfn
Scheint, dass es nicht möglich ist, muss man es tun, programmgesteuert oder erstellen einer benutzerdefinierten Ansicht.
InformationsquelleAutor der Antwort i_am_jorf
Können Sie es tun .xib-Datei. Bearbeiten es als text-und set-Konstante="0.5" statt "1" in Ihrer Ansicht, Höhe Einschränkung
Im Interface Builder
InformationsquelleAutor der Antwort Andrey Snetkov