UITableViewAutomaticDimension ne fonctionne pas sur iOS 8
Je suivais ce tutoriel à faire soi-même le dimensionnement des cellules.
Je me suis inscrit cellule personnalisé en vue de la table et dans la cellule xib j'ai donné tous les sous-vue des contraintes manuellement. Veuillez vous référer à la le code source sur GitHub
Organiser 3 étiquettes verticalement dans une cellule d'affichage de contenu a bien fonctionné dans iOS 9, mais pas dans iOS 8 (testés dans l'appareil et le simulateur).
Dans iOS 8 d'une cellule n'a pas de hauteur d'ajustement et non pas chaque étiquette montre à tous qu'il est plein texte.
iOS 8 ne convient pas:
iOS 9 comme je m'y attendais:
Tout conseil serait apprécié!
Mise à jour
code dans viewDidLoad
:
tableView.registerNib(UINib.init(nibName: "SelfSizingCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
tableView.dataSource = self
tableView.delegate = self
tableView.estimatedRowHeight = 60.0
tableView.rowHeight = UITableViewAutomaticDimension
tableView.reloadData()
tableView.estimatedRowHeight
dans viewDidLoad
?ouais je l'ai fait, je n'ai fait aucune différence à mon code lorsque testé sur iOS 8 et iOS 9. Veuillez vérifier le GitHub lien ci-dessus.
J'ai à définir un ensemble de contraintes de hauteur de la partie supérieure de 2 étiquettes pour vous la hauteur le travail d'automatisation dans iOS8, ou tout simplement ne pas avoir plus de 2 étiquettes dans une cellule. La recherche d'une meilleure façon ...
Avez-vous de corriger ce problème ? Je voudrais savoir la solution. Merci de répondre si vous savez. Je suis en train d'élaborer tout un programme.
le commentaire en dessous de la accepté de répondre à fonctionné pour moi
OriginalL'auteur bluenowhere | 2016-01-04
Vous devez vous connecter pour publier un commentaire.
ajouter le code suivant dans "cellForRowAtIndexPath" méthode avant le retour de la cellule.
Quelle est l'origine de ce problème?
Ça se complique pas de travail.
cellule.updateConstraintsIfNeeded() fonctionne pour moi.
OriginalL'auteur hasankose
Pour le faire fonctionner sur iOS 8 vous avez besoin de 3 choses:
1) Définir votre table ğ estimation de la hauteur de ligne" sur votre point de vue ne de la méthode de chargement.
2) mettre en Œuvre la "vue de la table hauteur de la cellule à la méthode...". (Supprimer le "remplacement" si votre classe n'est pas une sous-classe de "UITableViewController" et vous ajoutez la vue de la table vous-même.
3) Appeler le "updateConstraintsIfNeeded méthode lorsque vous revenez à votre cellulaire à l'intérieur de la" table view cellule de ligne à... " la méthode.
Avis: l'Étape 3 n'est PAS nécessaire pour iOS 9+
OriginalL'auteur Pochi
Donner le Haut,le Bas,la direction,la Fuite Contraintes à UILabel utilisé.
Vérifier numberOfLine doit être égal à 0
Alors défini ci-dessous les méthodes de
Maintenant exécuter le projet 🙂
Pour Xamarin utilisation: GetHeightForRow avec retour UITableView.AutomaticDimension et EstimatedHeight avec retour UITableView.AutomaticDimension
OriginalL'auteur Hemali Luhar
De ces deux lignes a fait le tour pour moi:
Tout le reste, j'ai essayé d'autres réponses n'ont pas de travail.
OriginalL'auteur Everton Cunha
Je ne peux pas le faire fonctionner... j'ai vérifié tous les conseils dans ce fil, mais la vue de la table, les cellules ne sont pas redimensionner leur hauteur.
J'ai eu le même tableau personnalisé de vue de la cellule définie comme prototype de cellule dans la table dans la table de montage séquentiel et il a travaillé.
Pour des raisons de réutilisabilité, j'ai mis la cellule comme xib. La vue de la table de charges et de mais les cellules ne sont pas redimensionner. Il semble qu'il fonctionne avec storyboard, mais pas avec xib la vue de la table de cellules.
J'ai un UICollection vue à l'intérieur de chaque plat de cellules avec un nombre variable de cv cellules, c'est pourquoi la hauteur de chaque plat cellule ne peut pas être l'identique.
Je n'ai pas changer tous les appels de fonction, par exemple, d'auto.tableview.beginUpdates() et .endUpdates() est appelée dans plusieurs endroits.
J'utilise Xcode 8.3.2
Et depuis l'affichage de la collection dans la télévision cellule de défilement éteint, j'avais créé cette extension pour mettre à jour sa hauteur à chaque fois que la télévision cellule établit-il des sous-vues: extension UICollectionView { func updateHeight() { laisser updatedHeight = auto.collectionViewLayout.collectionViewContentSize.la hauteur si updatedHeight != auto.cadre.taille.hauteur { laissez-frame = CGRect(x: auto.cadre.de l'origine.x, y: auto.cadre.de l'origine.y, width: auto.cadre.taille.largeur, hauteur: updatedHeight) de soi.frame = frame } } }
OriginalL'auteur user3122959
Version 10.1
UITableViewAutomaticDimension est renommé pour UITableView.automaticDimension
OriginalL'auteur sushi