11
votes

La cellule de table personnalisée iOS ne redimensionnait pas automatiquement la largeur de changement d'orientation

avoir une cellule de table personnalisée avec elle est propre .xib et .h et .m. Rien de trop chic. Lorsque l'appareil tourne, la largeur de la cellule ne change pas. La cellule des tables pour le chemin d'index est appelée, mais la largeur n'est pas des changements (disons du portrait au paysage). Qu'est-ce qui empêcherait cela?

Vous ne voulez pas maintenir la taille de la trame.

postera le code si nécessaire, mais peut-être que nous pouvons répondre à un code sur celui-ci.

Même si le démarrage de l'application dans le paysage ne définit pas non plus la largeur supérieure de la cellule.

[addition]

ne fonctionne pas non plus avec non-coutume cellules. xxx

XIB pour la table a le redimensionnement semblait être configuré correctement (support non-iOS6).


2 commentaires

Certains coups d'écran seraient utiles. Il est difficile de dire ici ce qui n'est vraiment pas redimensionné.


Je suis d'accord, mais cette question ne m'intéresse plus pour moi en ce moment. Nous pouvons le supprimer si le modérateur veut.


5 Réponses :


2
votes

La cellule sera automatiquement la même largeur que la vue de la table. Alors, qu'est-ce qui ne peut pas résoudre pourrait être la vue de la table. Vous devez lui donner des contraintes appropriées (si vous utilisez Autolayout, la valeur par défaut dans iOS 6) ou un masque automobilitaire (sinon) de manière à redimensionner en réponse à la vue de niveau supérieur redimensionnant pour compenser la rotation de l'appareil.


1 commentaires

Oui, c'est censé arriver. Pour une raison quelconque dans ce projet, ce n'est pas et essayant de le comprendre. Essayé au-dessus du code dur sans chance. Je suppose que la taille correcte de la cellule est définie par la vue de table après (cellule pour index) et avant (la cellule s'affiche).



1
votes

J'ai également fait face à ce même problème tout en atténitant les cellules personnalisées sur la rotation. Après avoir combattu, j'ai eu la solution d'autorisation de cellule.contentview, car j'ajoute mes points de vue en tant que sous-visView en cell.contentview.

J'ai utilisé après le code et mon code fonctionne bien :) P>

cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;


2 commentaires

Ce que vous avez mentionné est approprié, mais des masques automobiliés doivent être définis comme ceci: (UIViewAutoresizingflexibleWidth | UIViewAutoresizingFlexibleHeight). J'ai aussi eu le même doute que vous avez mentionné dans votre code, alors j'ai posté une question dans votre référence et vous pouvez le voir pour votre référence: Stackoverflow.com/questions/7754851/...


Ce code ne fonctionne plus à partir de SWIFT2. Toutes ces constantes finissent par des identifiants non résolus.



8
votes

Si vous remplacez le LayouTouSubviews ou une autre méthode, n'oubliez pas d'appeler c'est super: xxx

ne pas faire cela entraînera le problème que vous êtes face.


1 commentaires

tu es un génie



1
votes

Pour SWIFT 2, ce sera:

cell.contentView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]


0 commentaires

0
votes

Dans Swift 4, les travaux ci-dessous.

cell.cellUIView.autoresizingMask = [.flexibleWidth, .flexibleHeight]


0 commentaires