2017-10-02 3 views
-1

Ich habe eine IBDesignable-Klasse, an der ich gerade arbeite, und habe festgestellt, dass beim Versuch, der Klasse ein Protokoll hinzuzufügen, der Fehler "Rendering und Aktualisierung des automatischen Layouts fehlgeschlagen ist Status "Das Hinzufügen eines Delegaten zur IBDesignable-Klasse führt dazu, dass die Benutzeroberfläche nicht gerendert wird

Wenn ich das Protokoll herausnehmen, funktioniert es gut, aber für einige der Funktionen, die ich erstellen möchte, wäre dies sehr nützlich. Beispielcode, mit dem Sie den Fehler neu erstellen können

Weiß jemand, was das verursacht? Und weißt du, ob es ein Problem gibt?

Vielen Dank im Voraus

+0

Dies ist ein Fehler, der oft mit 'IBDesignable's auftritt. Ich vermeide es einfach, sie wegen ihrer Bugginess zu benutzen. – the4kman

+0

Gibt es eine Möglichkeit, den Fehler zu unterdrücken? Die IBDesignable-Klasse funktioniert immer noch mit der vorhandenen Delegate-Methode. Ich kann die App ausführen und es sieht gut aus, nur das Element der Benutzeroberfläche wird nur nicht ordnungsgemäß im Storyboard angezeigt, wenn ich den Delegaten hinzufügen – AdamM

Antwort

2

Ändern Sie Ihre Protokollerklärung zu:

@objc protocol TestProtocol {} 

es hier, in meinen Tests arbeiten (Ich änderte den Code ein wenig, aber nicht viel - gerade genug, um sicherzustellen, dass wir haben die nackten Knochen arbeiten). Beachten Sie, dass der entwerfbare Knopf tatsächlich grün ist; es wäre nicht, wenn der IBDesignable Code nicht funktionieren würde. Außerdem steht im Inspektor auf der rechten Seite "Up to date".

enter image description here

+0

Awesome, so eine einfache Lösung. Prost für deine Hilfe! – AdamM

Verwandte Themen