Impossible de définir (cornerRadius) défini par l'utilisateur inspecté bien sur (UIView)

Détails

Je regardais la vidéo de Session 411 sur la WWDC 2014 se référant à "Ce qui est nouveau dans Interface Builder", et je cherche comment créer des Cadres pour faire @IBDesignable classes pour la prévisualisation des changements dans le Storyboard, sans avoir à exécuter l'application.

@IBInspectable propriétés sont montrant correctement quand je l'ai ajouter à ma classe spécifique à la vue et le rendu de la vue correctement avec le code ci-dessous:

Code

@IBDesignable
class MyView: UIView {
    @IBInspectable var borderColor: UIColor = UIColor.clearColor() {
        didSet {
            layer.borderColor = borderColor.CGColor
        }
    }

    @IBInspectable var borderWidth: CGFloat = 0 {
        didSet {
            layer.borderWidth = borderWidth
        }
    }

    @IBInspectable var cornerRadius: CGFloat = 0 {
        didSet {
            layer.cornerRadius = cornerRadius
        }
    }

    @IBInspectable var masksToBounds: Bool = false {
        didSet {
            layer.masksToBounds = masksToBounds
        }
    }
}

Journal

J'ai remarqué que ces attributs ont été ajoutés sur Défini par l'Utilisateur Runtime Attributs (Sous Identité de l'Inspecteur). Maintenant ce que j'attends, c'est quand je lance le code de garder ces changements que j'ai fait avec un affichage spécifique.

Je lance l'application et le point de vue ne prend pas en charge la Défini par l'Utilisateur Runtime Attributs, et donne cette erreur sur la sortie (pas de plantage):

Unknown class MyClass in Interface Builder file
Failed to set (cornerRadius) user defined inspected property on (UIView)

Question

Ce qui est à l'origine de la demande de ne pas charger Défini par l'Utilisateur Runtime Attributs que j'ai ajouté en vertu de l' Identité de l'Inspecteur?

  • autre chose serait la cause de votre problème, parce que ce code fonctionne parfaitement comme il devrait l'être – les valeurs sont conservées correctement quand je lance l'application. Je peux changer toutes les valeurs en vertu de la norme attributs de l'inspecteur en vertu de l'utilisateur défini exécution des attributs de section.
  • c'est ce que je viens de dire: "les valeurs sont conservées correctement quand je lance l'application", et que tu viens de dire la même chose ", quand je lance l'application les attributs que j'ai ajouté sont travail correctement", je suis sûr au sujet de votre problème ici, peut-être? (btw, je n'ai reçu aucun message d'avertissement sur la console).
  • Avez-vous ajouté QuartzCore cadre?
  • J'ai supprimé le commentaire, car j'ai été incapable de modifier donc je suis en train d'écrire ici. J'ai ajouté les attributs de l'IB, mais ils ne sont pas en cours de chargement lorsque l'application est en cours d'exécution. C'est ce que je voulais dire.
  • Je vous comprends, mais je confirme et j'ai testé votre code et compilé un projet, d'exécuter l'application, et les valeurs sont conservées. si vous souhaitez me créer une réponse détaillée ce que j'ai vécu avec l'ajout de captures d'écran, je peux le faire pour vous... mais brièvement, les valeurs que j'ai mis dans de l'IB sont conservés que pour la vue lors de l'exécution du projet.
  • Interface Builder est un se plaindre que la classe associée à l'écran n'est pas disponible dans votre cible. MyClass.... Vouliez-vous dire pour le configurer comme "Mavue" ou est-ce une faute de frappe?
  • J'ai supprimé Incorporé cadre et a ajouté un nouveau. Il a donné une erreur de compilation se plaindre sur iOS Cible de ce minimum doit être iOS 8.0 (le Mien était 7.0). Il fixe et fonctionne bien, mais donne aussi à la sortie de impossible de définir défini par l'utilisateur inspecté la propriété.
  • Je ne sais pas je l'ai supprimé et a créé un nouveau cadre et que le problème a été résolu.

InformationsquelleAutor E-Riddie | 2014-10-29