web-dev-qa-db-fra.com

Swift hauteur des cellules du tableau dynamique

J'ai tableview avec cellule prototype, dans la cellule j'ai imageview et du texte en dessous. L'étiquette de texte est une laine dans la cellule prototype, mais parfois, il s'agit de plusieurs lignes. Je charge les données dans la vue Table après l'appel du serveur. Les libellés des lignes du storyboard sont définis sur 0 et Line Break to Word Wrap. J'ai aussi essayé http://candycode.io/automatically-resizing-uitableviewcells-with-dynamic-text-height-using-auto-layout/

mais sans effet. Si j'utilise tilisation de la disposition automatique dans UITableView pour les dispositions de cellules dynamiques et les hauteurs de ligne variables tout fonctionne car le texte de l'étiquette est prédéfini, mais je charge les données du serveur et je recharge le tableau après l'appel de l'API. , et alors l'étiquette est juste une ligne.

29
SpyZip

Vous devriez utiliser UITableViewAutomaticDimension fournit une solution pour afficher du contenu dynamique.

Utilisez le code ci-dessous dans viewDidLoad:

tableView.estimatedRowHeight = YourTableViewHeight
tableView.rowHeight = UITableViewAutomaticDimension

Lire la suite d'ici

J'espère que ça aide. :)

37
iVarun

assurez-vous que la contrainte de hauteur UILabel ne soit pas constante, si elle est constante, elle doit définir la relation supérieure ou égale à à partir de l'inspecteur d'attributs

assurez-vous que la hauteur de ligne UITableViewestimate est définie conformément à votre.

self.TableName.estimatedRowHeight = 85

et écrire dans la classe UITableViewCell

 Cell.lbl_name.sizeToFit()


 Cell.lbl_name.numberOfLines = 0

Assurez-vous que votre méthode UITableViewDelegate

func tableView(tableView: UITableView,
    heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{

 return UITableViewAutomaticDimension
}
18
Ankit Kushwah