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