J'ai une tableView avec des cellules statiques à l'intérieur. Une cellule contient une carte, UITextView
et d'autres contrôles:Comment puis-je modifier heightForRowAtIndexPath pour qu'il ajuste la hauteur de la textview, mais aussi garder la hauteur minimale quand textview est vide?
Ce textview a les contraintes suivantes:
Jusqu'à présent, je mis en place le heightForRowAtIndexPath
à la valeur statique pour cette cellule :
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
if indexPath.row == 0 {
return 311;
}
}
mais lorsque le texte est plus long, le t extview - au lieu de croître - contient le texte à l'intérieur et l'utilisateur doit le faire défiler. Fondamentalement, il est toujours de 311 en hauteur. Je veux le changer, afin que toute la cellule s'adapte au contenu de textView.
J'ai essayé de changer return 311
à return UITableViewAutomaticDimension
, mais ensuite, quand il n'y a pas de texte, la cellule se rétrécit et les contrôles sur la droite ne sont pas visibles. Donc, ma question est - comment puis-je définir la hauteur dynamique de la cellule en fonction du texte à l'intérieur, mais aussi garder la taille minimale de 311?
Vous n'avez pas besoin de modifier manuellement la hauteur de la contrainte. Une étiquette a automatiquement une contrainte de taille intrinsèque à une priorité inférieure (par défaut) qui la rendra aussi haute que nécessaire pour afficher tout le texte. – Jerry
Je voulais dire s'il veut utiliser le textView! Dans ce cas, il devrait changer la hauteur de la contrainte. Un UILabel va se redimensionner tout seul. – Rikh
Ah, oui, j'ai lu ça trop vite, désolé. – Jerry