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