Verwendung von IBDesignable und IBInspectable mit UIViewController

9

Ich bin neu in der iOS-Entwicklung. Ich benutze swift und möchte meine Ansichten programmatisch gestalten, aber ich möchte IBDesigner und IBInspectable verwenden, um meinen Designprozess zu beschleunigen.

Im Moment habe ich einen View-Controller mit verschiedenen Tasten und Beschriftungen darauf. Hier ist ein Ausschnitt meines Codes:

%Vor%

Meine Frage ist nun, wie verwende ich den Interface Builder mit IBDesignable und IBInspectable? Muss ich eine .xib hinzufügen? Ich habe einige andere Fragen gesehen, in denen erwähnt wurde, dass ich einen Spielplatz benutzen muss, aber ich habe versucht, dies zu vermeiden, ich wollte im Grunde wissen, ob es möglich ist, meinen gesamten Viewcontroller zu sehen?

Danke,

    
Gugi 30.09.2015, 08:26
quelle

2 Antworten

3

Sie können IBDesignable nicht mit einer anderen Klasse verwenden, die nicht von UIView oder NSView erbt. Überprüfen Sie die Richtlinie vom Apple über das IBDesignable:

  

Sie können zwei verschiedene Attribute verwenden - @ IBDesignable und   @ IBInspectable - um das interaktive Live-Design von benutzerdefinierten Ansichten zu aktivieren   Schnittstellenerstellung. Wenn Sie eine benutzerdefinierte Ansicht erstellen, von der er erbt   die UIView-Klasse oder die NSView-Klasse können Sie das @IBDesignable hinzufügen   Attribut kurz vor der Klassendeklaration

Quelle: Live-Rendering

a

    
GeraldoBastos 01.07.2016 21:16
quelle
2

Es gibt eine Problemumgehung, um Ihr View-Controller-Layout mit IBDesignable zu testen.

  1. Ordnen Sie Ihren View-Controller wie gewohnt im Code an
  2. Erstellen Sie eine IBDesignable-UIView-Unterklasse, und fügen Sie die View-Controller-Ansicht als Unteransicht hinzu.
  3. Erstellen Sie ein xib und legen Sie die Klasse als Sicht auf die Unterklasse fest, die Sie in Schritt 2 erstellt haben

Um Schritt 2 näher auszuführen, sieht die initWithFrame: -Methode von IBDesignable möglicherweise wie

aus %Vor%

Über diese initWithFrame-Methode hinaus kann der gesamte Layout-Code von Ihrem View-Controller verarbeitet werden. Möglicherweise möchten Sie Daten an Ihren View-Controller in der prepareForInterfaceBuilder-Methode Ihrer Unteransicht übergeben.

    
Jeff Ames 14.12.2015 10:59
quelle

Tags und Links