Frage

Ich scheine zu genießen neue UIViews und UIControls entwerfen, die ihre eigene -drawRect: Methode implementieren. Diese Arbeit gut für mich, vor allem bei der Verwendung von UIViews zusammengesetzt in Interface Builder .

Aber sie in Interface Builder Komponieren ist ärgerlich, weil sie zeigen sich nur als reine Rechtecke langweilig.

Es wäre toll, wenn die Ansichten selbst tatsächlich machen würden als die eingebauten Kontrollen zu tun.

Gibt es eine Möglichkeit ich mein Projekt strukturieren, so dass Interface Builder wird meine benutzerdefinierten Ansichten machen?

War es hilfreich?

Lösung

Um dies zu tun, haben Sie eigentlich ein Plug-in für Interface Builder erstellen, die Ihre benutzerdefinierte Klasse verwendet. Sobald Sie Ihren Plug-in erstellen und installieren, können Sie Instanzen Ihrer Klasse (Ihre Ansicht) auf einem anderen Fenster / Ansicht per Drag & Drop / was auch immer wie jede andere Kontrolle. Um mit der Erstellung IB Plug-Ins finden Sie in der Interface Builder Plug-In-Programmierhandbuch . Auch empfehle ich einen Blick auf Aaron Hillegass Buch nehmen, Cocoa Programming für Mac OS X . Neben sehr gut geschrieben und leicht zu verstehen, hat es ein Kapitel über Ihre eigenen IB Palette Kontrollen zu schaffen.

Andere Tipps

Dies ist erreichbar, indem Sie Ihre UIView Unterklasse mit @IBDesignable Markierung. Sobald Sie dies tun, werden Ihre benutzerdefinierten Ansichten machen sich im Interface Builder. Sie können sogar Parameter hinzufügen, die durch Markieren sie als @IBInspectable konfiguriert werden können. Hier ist ein Swift Beispiel:

@IBDesignable class customView: UIView {

    @IBInspectable var count: Int = 0

}

Es gibt eine Artikel über NSHipster , die näher zur Verfügung stellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top