UITableView à l'intérieur de UITableViewCell avec dynamique de la hauteur de la cellule

J'ai une liste dynamique des éléments, chaque élément peut avoir différentes teamplate/mise en page (et de la hauteur). Et l'un de ces types d'élément pourrait avoir une liste d'éléments à sélectionner à partir, régulièrement 5-6 lignes, chacune a différente hauteur.

Si j'essaie de le décrire plus loin, dans mon scénario, j'ai une tableview (#esclave) à l'intérieur de tableviewcells (#master-cellulaire) d'un autre tableview (#master). En outre cellules (#esclave-cellule) dans mon #esclave tableview peut avoir différentes hauteur. J'ai donc besoin de mise en page de mon #esclave pour avoir #maître automatiquement calc et mise à jour de sa taille.

UITableView à l'intérieur de UITableViewCell avec dynamique de la hauteur de la cellule

J'ai le problème avec la table interne (#esclave). Dans le cas de l'auto-mise en page, afin de s'adapter à toutes les cellules de l'espace, la table sera effondré à la différence de UILabel ou d'autres contrôles. Donc ce que j'ai besoin ici, c'est de la taille prévue de #esclave de table et de régler la hauteur de l' #esclave = contenu de la hauteur de la #esclave.

J'ai trouvé poste similaire et il fonctionne si toutes les lignes ont la même hauteur, mais je suis en utilisant des lignes dynamiques de la hauteur de sorte que le tableView.contentSize.La hauteur me donne un résultat non valide (en gros, il suffit de multiplier rowNumbers * estimatedRowHeight, vous pouvez le voir sur la capture d'écran, le maître de l'élément #3 a 4 cellules intérieures). Même après l'appel de #esclave.reloadData je ne pouvais pas obtenir cette taille.

Quelle est la bonne façon de construire ce genre d'INTERFACE?

Le code Source avec un projet de test ci-joint (Xamarin.iOS)

  • pourquoi avez-vous besoin tableView à l'intérieur de tableview?
  • Je pense que vous êtes à la recherche pour optional func tableView(_ tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
  • il est des exigences de conception, j'ai une liste dynamique des éléments, chaque élément peut avoir différentes mise en page (et de la hauteur). Et l'un de ces éléments pourrait avoir internes liste des éléments à sélectionner à partir, régulièrement 5-6 lignes, chacune a différente hauteur.
  • Pourquoi auriez-vous besoin de plusieurs tableviews pour cela? Tu ne peux pas utiliser les sections de diviser votre tableView et insérer des cellules avec différentes hauteurs (ou même calculé automatiquement les hauteurs à l'aide de UITableViewAutomaticDimension)?
  • pourriez-vous s'il vous plaît suggérer comment puis-je utiliser les sections dans mon scénario. Recommandez-vous d'aller avec une toute nouvelle section pour ce type d'élément de données au lieu d'une seule cellule?
  • vous pouvez utiliser les sections pour obtenir ce que vous voulez faire, vous devriez avoir autant de sections que maître des éléments et dans chaque section, vous devriez avoir les sous-éléments @AlexeyStrakh
  • maintenant, j'ai eu l'idée avec les articles. Malheureusement mes articles source se compose de différents types d'éléments, donc dans l'approche proposée, je vais aller avec une section pour les autres articles, ce qui est inattendu changement de conception. Je suis juste essayer d'introduire un nouvel élément de type avec mise en page personnalisée (table à l'intérieur). @Klinkert0728
  • si j'ai bien compris, vous avez besoin d'une conception différente dans les cellules de la section?
  • Oui, la conception différente pour les différents types de cellules. Dans mon exemple ci-dessus il n'y a qu'un type, et que les autres personnes.
  • Vous pouvez donc avoir différents prototypes de cellules pour correspondre à chaque modèle que vous souhaitez @AlexeyStrakh
  • oui bien sûr, vous pouvez voir ma réponse peut-être il peut vous aider à @AlexeyStrakh
  • j'avais un scénario similaire quand j'ai mis la vue d'une collection à l'intérieur de tableviewcell j'ai fait ce travail, mais quand je défile en arrière et en avant aussi vite que je peux, j'ai eu un crash, car le délégué où ne pas avoir à intervenir assez vite et le délégué a renvoyé un néant de la cellule, j'espère que vous ne l'obtenez pas.Si vous obtenez le même crash je pense que vous devez en quelque sorte l'utilisation de sections pour gérer ce scénario.
  • merci pour vous des préoccupations au sujet de l'accident, je vais le prendre en compte, le plus probable sera de faire une seule ligne de texte les éléments de ma table interne qui va me permettre de définir la table interne de la hauteur correctement et n'ont pas de problèmes avec mise en page automatique et automatique de la hauteur de la cellule de calcul