IB Designables: Échec pour le rendu et la mise à jour automatique de l'état de mise en page
J'ai un affichage personnalisé (xib
) qui a un UIButton
intérieur de celui-ci, j'ai fait id IBDesignable
procédant de la manière suivante:
UserView.swift
import UIKit
@IBDesignable
class UserView: UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var userButton: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
load()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
load()
}
fileprivate func load() {
Bundle.main.loadNibNamed("UserView", owner: self, options: nil)
addSubview(view)
self.frame = bounds
}
}
UserView.xib
- Ajouté le UIButton et de définir des contraintes
- Définir le Propriétaire du Fichier:
UserView
Storyboard
J'ai ajouté une UIView à un Bar Button Item
et affecté UserView classe, mais rien n'est rendu, et j'ai eu l'erreur de génération suivante:
erreur: IB Designables: Échec pour le rendu et la mise à jour automatique de l'état de mise en page
pour FoodViewController (bR3-Kz-wX7): L'agent a déclenché une exception.
Actuellement mon environnement: Xcode 9, Swift 4
Essayez de désactiver l'Utilisation Trait Variations " (l'Identité et le Type de panneau) pour n'importe quel fichier xib que vous pourriez avoir pour les vues personnalisées qui sont utilisés dans votre storyboard. à partir de stackoverflow.com/questions/39732312/...
OriginalL'auteur Jonathan Solorzano | 2017-10-13
Vous devez vous connecter pour publier un commentaire.
Je ajouter ce script à la fin de mon
Podfile
et réaliséepod install
de nouveau. Donc, j'ai pu développer normalement mon projet.Il a travaillé pour moi aussi. Il a juste détend l'exigence de signature de code exigence pour les cadres que vous souhaitez charger via Cocoapods.
Est ce que cela a des effets secondaires à tous les cadres?
travailler comme un charme. bravo
OriginalL'auteur Haroldo Gondim
Je viens d'avoir exactement le même problème, et la seule chose qui a fonctionné pour moi a été au lieu d'utiliser le Bundle j'ai dû mettre le paquet pour la Plume que je voulais. Essentiellement en train de changer:
:
Qui est bizarre, dans mon cas, lorsque l'on compare les deux groupes lors de l'exécution dans LLDB ils étaient identiques (nom de la classe est différente, mais le reste de ma configuration est identique à l'OP)
Parce que quand InterfaceBuilder est rendu, il n'est pas l'exécution de l'application. Il n'y a pas de "principale de l'application bundle".
OriginalL'auteur Mike Velu
Xcode 9.3, CocoaPods 1.5.3
Il peut être dû à la récente mise à jour sur CocoaPods version. Voir question ici.
J'ai eu cette erreur
IB Designables: Failed to render and update auto layout status
dans le storyboard, la classe STPPaymentCardTextField en Bande SDK liées à Cocoapods.Solution est de déclasser votre CocoaPods à 1.4.0.
fonctionne pour moi trop partiellement.
Après toutes les étapes de supprimer des données obtenues et de redémarrer xcode . sa marche pour moi
OriginalL'auteur Cons Bulaquena
Ligne De Fond
Assurez-vous que votre fichier xib n'ont pas les orphelins des points de vente. Vérifier chaque point de vue/élément de la pointe pour une prise de courant et de supprimer et de rajouter.
Pour moi, ils étaient devenus des points de vente. Il semble que les plumes et IB sont très capricieux, et le débogueur ne donne pas beaucoup de détails... si vous ne pouvez pas obtenir que cela fonctionne, vous pourriez commencer avec une nouvelle plume/xib fichier.
Procédure pas à pas de mon code de travail
Cette question m'a fallu plusieurs jours pour les résoudre. Pour le bénéfice des autres, je suis de donner une verbose la réponse et montre l'ensemble de mon code et connexions.
Mon fichier de structure
Voici mon fichier de structure (note: je suis entrain de créer un pod avec cocoapods nommé
ZMAppFoundation
. Aussi,ZMPieTimerView.swift
n'est pas pertinente pour la solution.):Je veux que ma plume pour être visible (IBDesignable) dans le
Main.storyboard
fichier. Ici est le Propriétaire du Fichier et la Classe Personnalisée de mon xib,ZMGauge.xib
:Code, les implémentations
Voici mon ZMXibView classe:
Dans le storyboard, mon xib est désigné dans la Classe Personnalisée. Je suis à l'aide de cocoapods de développer un module. J'ai explicitement sélectionné le Module. (Notez que dans mon XibView classe, je dois définir le
nibName
de la propriété.):N'Oubliez pas!
Alors vous pouvez avoir besoin pour nettoyer, près de Xcode, reconstruire, ou tout simplement attendre un certain temps pour l'IB pour la rendre de nouveau. C'est encore un mystère pour moi exactement quand Xcode va décider d'essayer de rendre la IBDesignables, et je ne sais pas de manière à la force.
Succès
Basé sur mon code et les actions que j'ai pris, ma plume est maintenant IBDesignable visible dans ma Main.storyboard.
Dans le cas où vous l'auriez manqué
Dans le cas où vous l'auriez manqué, ma solution est tout en haut de ce post. J'ai eu le mien pour effacer l'erreur citée par l'OP en supprimant certains orphelins IBOutlets.
OriginalL'auteur Jacob Davis
Pour moi, la solution est descendu à l'obtention d'Interface Builder pour redessiner l'objet. Je l'avais en deux lieux et deux ont été fixés par aucun changement de code, mais les symptômes de l'agent d'erreur et le point de vue d'être vide dans le storyboard a finalement été résolu.
L'un a été résolu en faisant glisser une UIView à un ordre différent, en vertu de la Vue et de la reconstruction. Une deuxième dans un TableView avec Prototype de cellule a été fixé par la sélection de la TableView, en changeant le nombre de Prototypes de cellules à deux, attendez une seconde, puis revenir à un. La TableView, qui avait été un blanc, le vide, puis a dessiné tous les éléments correctement et l'agent d'erreur a disparu.
Il se sent comme si c'est un bug avec le bureau international et d'autres recherches, de nombreuses solutions existent pour la même erreur. Espérons que cela aide quelqu'un.
OriginalL'auteur FiveOhHO
(xCode 9.2, Swift 4) suivantes ne peuvent pas aider votre problème exact, mais il peut aider d'autres personnes ayant un problème très similaire. Ce fut mon erreur:
J'ai été en mesure de supprimer l'erreur lors de la suppression de la CustomExampleView.xib et CustomExampleView.swift. Pour répliquer, j'ai ensuite re-créé les fichiers, est allé à l' .xib et le jeu en haut de l'affichage du niveau de la classe personnalisée pour CustomExampleView.
Mon erreur était paramètre de la classe personnalisée à l'affichage de niveau supérieur sur les .xib au lieu de la définition de la classe personnalisée sur le Propriétaire du Fichier. Après le réglage de la bonne classe personnalisée, mon problème a été résolu.
OriginalL'auteur olearyj234
C'est le problème avec quelques gousses de cacao versions comme 1.5.0.
Si vous utilisez ce un puis il cause à rendu a échoué
pour passer de la version actuelle à d'autres exécutez ces commandes dans le terminal
Vous pouvez installer une version spécifique en mentionnant comme ce
Espère que ça fonctionne pour vous.
essayez cette Xcode -> préférences -> général et cochez question
OriginalL'auteur Shaheryar Malik
Pour moi ce problème résolu,
l'option intégrée.
hahaha ancien hack 🙂 Merci!
OriginalL'auteur Najam
Entrer le code susmentionné dans le Podfile résout les problèmes. Ce code ne fonctionne tout simplement supprimé l'obligation de signature de code pour mise en place de cadre par Cocoapods. Mais ce qui semble être un bug dans IBDesignable trop que l'utilisation de Xcode 10 paris 4 je n'ai pas ce bug dû au nouveau système de construction incorporés dans Xcode 10.
OriginalL'auteur Nikhil Pandey
Je suis terrés à quelle stupidité c'est que ce que je suis sur le point de vous dire, fait une différence, mais vous pouvez essayer de retirer le code de la rupture de
et ne l'utiliser qu'en
. Je suis à plaindre, encore plus, quand je signale qu'il est possible que vos modifications pourrait encore se refléter dans la table de montage séquentiel comme souhaité lors de cette opération.
Vous pouvez identifier le code de la rupture par commenter toutes les lignes et à l'aide d'un processus d'élimination pour identifier la ligne de rupture.
OriginalL'auteur ScottyBlades
Malheureusement, vous ne pouvez pas utiliser IBOutlets dans un IBDesignable. Meilleure réponse pour vous ici:
En Direct De Rendu IBOutlet Connecté Via Des Sous-Vues IBInspectable Propriétés
Peut-être vous voulez avoir votre UserView étendre UIButton, plutôt que de UIView?
OriginalL'auteur Mars
Je ne connais pas vraiment la cause de tout cela, mais je l'ai vu une couple de fois et à chaque fois c'est résolu en redémarrant xcode. Je pense que c'est là où tout le monde doit commencer et si cela ne fonctionne pas, alors vous pouvez essayer les autres suggestions de réponses.
OriginalL'auteur Castro Zwelithini
J'ai désactivé l'Utilisateur trait Variations " et mon problème a été résolu.
OriginalL'auteur Sam