IOS – Comment créer TabelView avec des lists déroulantes horizontales

J'essaye d'implémenter une vue de table avec les éléments horizontaux défilants (avec le nombre inconnu d'articles) comme l'illustration ci-dessous:

entrez la description de l'image ici

L'interface user devrait se comporter comme suit:

  1. A l'état init, la cellule du tableau affiche une label et du text et l'élément circulaire apparaît du côté droit
  2. Si les users balaient de droite à gauche, l'label et le text disparaissent et la list horizontale (à l'intérieur de la cellule) prend sa place

J'ai pensé utiliser TableView et dequeueReusableCellWithIdentifier et créer une cellule prototype, mais je dois me souvenir de la position horizontale de la list et initier la cellule correctement sur cellForRowAtIndexPath et cela affectera probablement les performances.

Q: Quelle layout utiliseriez-vous pour atteindre cet objective, tout input / tutoriel serait apprécié

Utilisez un UITableView et ajoutez un UICollectionView à votre cellule tableView réutilisable. UICollectionView fonctionne de manière similaire à UITableView en ce UITableView que les "éléments" (comme les cellules) sont réutilisables et instanciés uniquement lorsqu'ils apparaîtront à l'écran. J'ai fait une search google rapide pour les tutoriels et trouvé UICollectionView dans UITableViewCell . Vérifiez cela et quelques autres questions StackOverflow concernant la design et vous devriez être en or.

Vous pouvez utiliser un ScrollView pour mettre à l'intérieur de votre tableview et définir les valeurs "Direction lock enabled" et "Paging Enabled" à true pour le scrollview.

L'utilisation de UIScrollView peut requestr beaucoup d'efforts s'il y a une grande quantité d'éléments d'interface user à l'intérieur de chaque scrollview, car vous devez instancier tous ces éléments. Une meilleure solution consiste à définir votre UITableViewCell personnalisé qui a sa propre UITableView mais qui est pivoté à 90 degrés pour le défilement horizontal. Les éléments d'interface user à l'intérieur seront créés uniquement lorsqu'ils doivent être affichés en utilisant dequeueReusableCellWithIdentifier: forIndexPath :. S'il vous plaît voir un exemple de code sur la façon de créer une vue de table pivoté à 90 degrés:

iPhone Tableview Utiliser des cellules en défilement horizontal non vertical