Développez l'étiquette ou de la taille de la cellule basée sur la taille du texte dans UITableView Swift
Je suis nouveau sur le développement d'iOS. J'ai un problème avec ma cellule de dimensionnement. Je ne suis pas à l'aide de Auto-Laylout
fonctionnalité. Mon TableView
cellule ressemble à quelque chose comme ceci. Je veux faire de la taille de l'étiquette qui est sélectionné dans la image être étendu de manière dynamique basé sur le contenu du texte de l'Étiquette.
Merci d'avance.
vérifier this. C'est Objctive-C version
Li, je suis désolé, je n'ai aucune idée sur Objective-C, s'il vous plaît aider...
Il peut être fait avec 2 lignes de code si vous utilisez la mise en page automatique. Pourquoi n'êtes-vous pas à l'aide de qui?
J'ai près de 20 écrans dans mon storyboard et si j'utilise l'auto-mise en page de l'écran seul, il affecte la mise en page de tous mes autres écrans. Pouvez-vous me dire comment utiliser l'auto-mise en page de ce seul point de vue ?
Vous devez vraiment être à l'aide de auto disposition pour toutes vos écrans. Activation de la mise en page automatique est un storyboard grande chose; c'est sur on ou off pour l'ensemble de la table de montage séquentiel. Cependant, vous pouvez concevoir votre cellule dans un xib, et utiliser la mise en page automatique.
Li, je suis désolé, je n'ai aucune idée sur Objective-C, s'il vous plaît aider...
Il peut être fait avec 2 lignes de code si vous utilisez la mise en page automatique. Pourquoi n'êtes-vous pas à l'aide de qui?
J'ai près de 20 écrans dans mon storyboard et si j'utilise l'auto-mise en page de l'écran seul, il affecte la mise en page de tous mes autres écrans. Pouvez-vous me dire comment utiliser l'auto-mise en page de ce seul point de vue ?
Vous devez vraiment être à l'aide de auto disposition pour toutes vos écrans. Activation de la mise en page automatique est un storyboard grande chose; c'est sur on ou off pour l'ensemble de la table de montage séquentiel. Cependant, vous pouvez concevoir votre cellule dans un xib, et utiliser la mise en page automatique.
OriginalL'auteur Kalai Arasi | 2015-05-08
Vous devez vous connecter pour publier un commentaire.
je pense que la swift version comme ci-dessous, il calcule plus près les valeurs ne sont pas la hauteur exacte, par exemple
ci-dessus, nous avons un tableau qui contient la chaîne de caractères de longueur différente
essayer à un nouveau projet, il suffit d'ajouter le tableview et définir sa source de données et délégué et passé le code ci-dessus et lancez
le résultat sera comme ci-dessous
a u essayé le code ci-dessus dans un projet distinct, .. u besoin de faire quelques modifications pour vos besoins, code ci-dessus est juste pour trouver la hauteur en fonction de la chaîne de contenu . je vais ajouter de la capture d'écran comment le résultat
pas la meilleure façon de le faire, mais il fonctionne
Très bonne réponse! Pour mon problème, il a parfaitement fonctionné!
peut-être pas la meilleure approche. mais le seul qu'il a fait pour moi
OriginalL'auteur Shankar BS
Essayer de remplacer les méthodes:
Solution complète:
Dans iOS 8, Apple a introduit une nouvelle fonctionnalité pour UITableView, connues sous le nom de Dimensionnement des Cellules. Avant iOS 8, si vous affiche le contenu dynamique dans la vue tableau varié ligne, vous avez besoin de calculer la hauteur de ligne sur votre propre.
En résumé, voici les étapes à mettre en œuvre lors de l'utilisation de l'auto de dimensionnement des cellules:
• Ajout automatique des contraintes de mise en forme dans votre prototype de cellule
• Préciser la estimatedRowHeight de votre table vue
• Définir la rowHeight de votre table en vue de UITableViewAutomaticDimension
Exprimant deux derniers points dans le code, sa ressemble:
Vous devez l'ajouter dans la méthode viewDidLoad.
Avec seulement deux lignes de code, vous demandez l'affichage de la table à calculer la cellule de la taille de la correspondance de son contenu et de le rendre dynamique. Cette auto-dimensionnement de la cellule fonctionnalité devrait vous sauver des tonnes de code et de temps.
Dans les Attributs de l'Inspecteur de votre UILabel, changer la valeur à 0, de sorte que l'étiquette sera automatiquement ajuster le nombre de lignes à ajuster le contenu.
Veuillez noter que le premier point est nécessaire et n'oubliez pas que vous ne pouvez pas utiliser l'auto dimensionnement de la cellule sans l'application de mise en page automatique.
Si vous êtes à la note familier avec mise en page automatique, veuillez lire la présente, il sera assez:
https://developer.apple.com/library/mac/recipes/xcode_help-IB_auto_layout/chapters/pin-constraints.html
Ou, de façon plus simple pour définir la mise en page automatique, mais peut-être pas être ce que vous exactement prévu est d'effacer toutes vos contraintes, pour la résolution Automatique de Problèmes d'implantation et de Tous les points de Vue, cliquez sur le bouton rétablir Suggéré Contraintes.
De ce fait ma journée Merci!
OriginalL'auteur stakahop
Juste ajouter ceci dans le Viewdidload
OriginalL'auteur Albi