Auto-Dimensionnement de la Vue de la Table de Cellules dans Xcode 9
J'ai un UITableViewController
où la cellule auto correctement dimensionnée à l'aide de Xcode 8 et Swift 3. Maintenant que je suis en utilisant Xcode 9 et Swift 4, ils ne sont pas en expansion et sont tout simplement à l'aide de la hauteur par défaut de 44.
(J'ai environ une phrase ou deux dans chaque UITableViewCell
)
J'ai été en utilisant cette avant:
//MARK: - Table view delegate
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
... mais a été en mesure de commenter parce que par Mise à jour de Votre App pour iOS 11 dit que le défaut serait l'auto-dimensionnement maintenant:
J'ai essayé de jouer avec la modification de la cible de déploiement pour iOS 11, jouer dans un scénario (mais je suis en utilisant une Vue de Table style de Cellule de Base donc il n'y a pas beaucoup de mise en page automatique à faire), et je ne peux pas comprendre ce qui se passe.
J'ai le UILabel
titre réglé sur 0 Lignes, et ont Saut de Ligne retour à la ligne, mais encore de ne pas obtenir n'importe où près de l'obtention de la cellule, afin d'élargir basé sur le texte contenu à l'intérieur d'elle dans Xcode 9. Des idées?
Merci!
Edit:
Voici les options (que je n'ai pas) pour épingler car elle est une cellule de Base:
- Si vous voulez que vos cellules à se développer, le contenu doit être épinglé avec Mise en page Automatique, au moins pour le haut et le bas de votre cellule, vous cela?
- Xcode 9 et le 11 SDK iOS sont encore en version beta donc il y aura des bugs. Si c'est un bug dans le logiciel bêta, alors il devrait être signalé à Apple.
- J'ai ajouté quelques images à ma question initiale à l'absence d'options que j'ai, ne fait que préciser? Merci!
- bon, je vais le faire si je sais que c'est un bug, mais je me demandais si quelqu'un savait qu'il y avait quelque chose de précis, j'ai été absent ou connaissez-vous pas?
- ses le contenu de ce que vous avez besoin d'ajouter des contraintes, pas la cellule elle-même, je pense que ce sera la même contraintes nécessaires dans iOS 10 XCode8 pour automaticDimensionCells, avez-vous d'ajuster la
content compression resistance priority
etcontent hugging priority
? - Je n'ai pas ajustés. Dois-je le faire, et vous dit de le faire que sur le Contenu de la Vue? Je ne vois pas l'option pour que sur l'Affichage du Contenu dans la table de montage séquentiel, donc je ne sais pas si c'est une option pour moi ou si je suis juste en manque.
- J'avais été fait dans iOS 10 Xcode 8, je n'ai pas de XCode 9 mais dans XCode 8 j'ai mis toutes les contraintes à l'intérieur de la contentView et réglage de
content compression resistance priority
etcontent hugging priority
fonctionnent très bien - voyez-vous, mon Storyboard captures d'écran qu'il n'a pas l'air comme je peux le faire sur le Contenu de la Vue? Ou ai-je raté quelque chose avec ce que potentiellement?
- Le contentView ne peut pas être touché, mais vous pouvez mettre votre étiquette à l'intérieur de la contentView et de jeu de haut en bas, à gauche et à droite de contraintes et d'ajuster les propriétés
content compression resistance priority
etcontent hugging priority
doivent travailler - maintenant voir votre capture d'écran, vous n'avez pas active mise en page automatique à tous, vous êtes à l'aide d'un redimensionnement automatique de masque? cela peut être la source de votre problème
- s'il vous plaît laissez-moi savoir si vous avez réussi à résoudre votre problème
- parce que c'est une cellule de Base, le type, je n'ai pas mis une étiquette à l'intérieur de l'Affichage du Contenu parce qu'il est déjà un titre de l'étiquette par défaut, vous connaissez?
- Vous pouvez ajouter une cellule personnalisé et ajouter votre étiquette avec les contraintes comme je l'ai dit et mis
content compression resistance priority
etcontent hugging priority
? et laissez-moi savoir, sans mise en page automatique automatique dimensions pour les cellules ne fonctionnent pas parce que tableView de la première exécution de mise en page automatique du moteur de méthodes pour faire des calculs de la hauteur de la cellule - totalement pourrait le faire, mais je ne peux pas imaginer que ce serait quelque chose qui serait indisponible avec leur Base par défaut et les sous-titres cellules droit? Merci pour l'aide!
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et résolu avec les lignes de code:
C'est peut-être un bug dans Xcode.
Mise à jour
Nouveau dans Xcode 9 beta 3:
Interface Builder prend désormais en charge le réglage de la estimatedRowHeight de UITableView. Cela permet à l'auto de la taille des cellules d'un tableau par le réglage de la hauteur estimée à une valeur autre que zéro, et est activé par défaut. (17995201)
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return UITableViewAutomaticDimension }
etfunc tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { return UITableViewAutomaticDimension }
J'ai eu le même cassé la vue de la table numéro. Correctif a été en un seul clic.
Aller à votre xib ou d'un scénario des scènes avec des vues de table, aller à la taille de l'inspecteur, et vous verrez l'affichage de la table des hauteurs (même sur la dynamique des vues de table) 44, et les sections 22. Cliquez simplement sur "automatique", et boum, il sera présent comme prévu.
Noter que j'ai également spécifier les éléments suivants dans le viewDidLoad de la UITableViewController sous-classe (layoutSubviews résout des problèmes avec le premier chargement d'un tableViewController pas correctement positionnés par rapport à un non-translucide barre de navigation).
En plus de
vous devez définir une hauteur de contrainte pour le
contentView
de la tabeleViewCell.J'ai eu le même problème et j'ai lu à ce sujet dans de nombreux documents, une réponse satisfaisante a été quelque chose comme cela, Vous devez cocher les deux options afin d'obtenir la bonne hauteur, parce que l'estimation de hauteur est nécessaire pour une première installation de l'INTERFACE utilisateur, comme le scrollview bars et autres telles choses.
voir cette image pour le storyboard
Notez également qu'il existe un bug dans xCode 9, lorsque vous essayez d'appliquer un chargement différé dans le calcul automatique de la hauteur, faire défiler de façon inattendue, alors je vous recommande d'utiliser programmatique à cet égard.
quelque chose Comme ça. Merci!
Pour moi, de la Zone de Sécurité a été vérifiée. Décocher l'option "Zone de Sécurité" a fait le travail pour moi.