12
votes

Ibdesignable ne finit jamais mis à jour UitailViewCell dans Storyboard

Ceci est une question similaire à Ce mais pas tout à fait identique.

J'ai créé Une sous-classe d'UitailViewCell qui fait référence à une nib personnalisée et l'a marquée comme @ibdesignable. Les modifications apportées à la fois en code et à partir de l'affichage du fichier .xib correctement dans le simulateur et sur un périphérique mais non dans le storyboard. P> xxx pré>

Le storyboard affiche un "designables permanents" Mise à jour ". P>

 conminkables mises à jour p>

briser le problème dans un test moins complexe de la sous-classement d'un utilviewcell et le marquant comme @ibdesignable Résultats dans le Même permanent "Demistables Mise à jour". P>

import UIKit

@IBDesignable class TextFieldTableViewCell: UITableViewCell {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    }

}


4 commentaires

Je suis confronté au même problème. Mais lorsque je mets TableViewCell dans une zone de vue normale, je peux faire l'ibdesignable. Donc, je crois que c'est un bogue Xcode que la cellule ne peut pas être contestable dans la TableView


Apple a répondu à un rapport de bogue que j'ai soumis et c'est en effet un bug.


Merci, aide beaucoup


J'utilise Xcode 9 GM. Cela n'a pas ce problème.


3 Réponses :


1
votes

J'avais des problèmes similaires. Ce fil m'a aidé à comprendre le problème: Y a-t-il une façon pour l'interface Builder de rendant des vues ibdesignables qui ne remplacent pas Drawrect:

Je l'ai eu pour fonctionner en ajoutant p>

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        layoutSubviews()
    }


3 commentaires

L'ajout du code suggéré ci-dessus ne fournit aucune différence.


Offsiez-vous la méthode LayouTouSubviews () et appelez Super? J'ai eu un code de dessin personnalisé dont j'avais besoin et j'ai donc mis en œuvre la méthode. Je trouve XIB vraiment fidèle à travailler avec, mais cela pourrait faire la différence. > Remplacer les fonctions Func FunTouSubviews () {Super.Layoutsubviews ()}


J'ai le même problème avec Xcode 7.2, et cela n'a pas aidé. Je ne vois pas non plus comment implémenter LayouTouSubviews Layouplaysbviews est appelé it'll appellera automatiquement la version de Superclass si elle n'est pas remplacée.



6
votes

Ce problème a été résolu comme de Xcode 9.

J'avais signalé cette question à Apple et au moins l'esprit en sachant que ceci est un bug connu. C'est actuellement un problème ouvert sous le problème ID 17973876.

EDIT: A partir de 12/7/2016 Ce bogue est toujours marqué comme ouvert.


2 commentaires

Cela me passe actuellement sur xcode9? Devrais-je aussi chercher à leur signaler la question aussi?


Je viens de placer une uicollectionview dans mon UIView personnalisé et il ne ralentit pas non plus dans le scénario. Je suis juste confus est le problème sur ma fin ou c'est un bug.!



0
votes

Il semble que le bogue "Mise à jour" ne se produise que lorsque la cellule est à l'intérieur d'un storyboard. Tout fonctionne correctement lorsque vous créez un fichier .xib spécial juste pour la cellule.

Espérons-le, ils le répareront bientôt.


0 commentaires