Plusieurs lignes d'un même "objet"
Salut à tous
J'ai besoin de vos lumières, je fais la mises à jour de Part of Fun et j'aimerais savoir s'il est possible de recopier sur plusieurs lignes les mêmes informations :
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Euh, si t'as une UITableView, pourquoi ne pas faire une UITableViewCell custom ?
Par contre, d'après ce que tu poses comme question me fait douter sur tes connaissances sur la partie POO...
Si je comprend bien ton problème, tu veux insérer le template que tu présente n fois dans ta vue.
En gros les deux solutions que je vois sont celles que tu as cité :
-une tableView ou tu fais n cellule.
-une scrollView qui contiendra n subview de ton template.
Après je vois pas trop le problème en faite...
Je n'ai pas de UITableView sinon oui j'aurais utilisé une UITableViewCell custom pour le moment j'ai 2 View ainsi qu'une Page View Controller afin que l'utilisateur peut slider entre l'équipe 1 et l'équipe 2
Exactement ça, mais je voudrais savoir si c'est mieux d'utiliser une tableView avec des Cell custom ou si l'utilisation de "subview de ton template" est mieux
La subview est ce que je décris comme "[ /!\ Ce qui suis est une idée x) ]" car n'ayant jamais utilisé cette méthode je ne savais pas si cela fonctionné pour mon cas
à‰dit:
N'ayant jamais utilisé la subview, le principe est de remplir une view avec objet (label, image ...) et de l'appeler n fois ?
Si oui j'utilise à peut prêt le même principe pour l'affichage sous forme d'une Page View
De ce que je vois sur ton screen, tu vas afficher une liste de ligne donc fais une tableView c'est le plus logique.
En plus, les tableview gère mieux l'affichage des cellules et la charge en mémoire. ( je parle du dequeuereuse)
En gros elle va charger les cellules visibles puis changer le contenu quand tu en cache une pour en afficher une autre. ( Si j'ai bien compris le système ).
Donc si tu as 2 lignes à afficher c'est un peu sortir le machine gun pour buter une puce mais quand tu commences à avoir pas mal de lignes c'est beaucoup mieux. ( Et surtout quand c'est un nombre de lignes dynamique )
D'accord j'aurais au maximum 5 lignes à afficher et donc ce qui remplie ma View mais l'utilisateur peux slider (voir screen) et passé à l'équipe 2.
Donc tu pense que la TableView serait le mieux ? car dans mon cas la gestion de la mémoire ne rentre pas vraiment en compte car il n'y aura jamais de cell masqué, ce que je souhaite et surtout accélérer le chargement de la vue.
A savoir définir un composant dans un XIB (pas besoin que le File's Owner soit un UIViewController pour ça) et l'instancier plusieurs fois.
Pour ça rien de plus facile, tu peux créer un XIB pour ton composant réutilisable, puis par code tu instancies un UINib (avec "nibWithNibName:bundle:") pour précharger ton XIB, et tu appelles dessus "instanciateWithOwner:options:" autant de fois que tu veux instancier ton composant réutilisable, et tu les places (addSubview) dans ta vue principale, aux positions que tu veux.
Autre possibilité, surtout si tu veux placer ce composant réutilisable dans ton XIB et pas par code, c'est celle qui a été présentée aux CocoaHeads, à savoir toujours faire un XIB contenant ton composant, et de le charger dans le initWithCoder du ".m" du composant (dans l'exemple cette fois avec "-[NSBundle loadNibNamed:... owner:... options:..." pour instancier les vues définies dans ce XIB, même si une méthode de classe qui crée le UINib dans dispatch_once aurait été bien mieux pour éviter de recharger le XIB à chaque fois, mais bon passons) pour que le composant .m charge lui-même son propre XIB.
Dans tous les cas le principe de base reste le même, faire ton composant dans un XIB et charger ce XIB avec UINib (avantage de la reusabilité) ou avec "loadNibNamed:" pour ajouter cette vue en subview.
Oui mais est ce que c'est plus rentable qu'une TableView ? C'est ca la vrai question en faite...
Sauf que un XIB pour instancier une UIView après tu peux placer ton UIView comme tu veux, alors qu'une UITableView t'impose que les vues soient forcément les unes sous les autres et espacées régulièrement etc.
Je parlais pas en temps d'écriture mais plus en performance en faite...
Je sais faire les deux mais sa question est pertinente je trouve dans un cas comme celui-ci qu'elle est la meilleure façon de l'implémenter ?
*Sens qu'il va faire des tests de performances avec instrument*
Oui voila même si utiliser ta technique me ferais apprendre beaucoup de nouvelle chose, je pense qu'une TableView répondrait à mes besoin.
Par contre au niveau de :
"As-tu déjà utilisé une Page View ? Car j'ai un temps de chargement assez long lorsque je slide pour passer à la page deux alors que les données sont tous téléchargé dans le : "viewDidLoad" de Vision View (donc la view qui englobe tout)"
Vous avez une idée ?
Euh... tu as une vue qui contient une pageView qui contient tes pages ?
Pourquoi ne pas faire un pageViewController directement ? :P
Je me suis mal exprimé faut dire que c'est pas simple à expliquer x) j'ai bien une PageViewController mais lorsque je slide de la vue 1 à la vue 2 j'ai un temps de chargement
Donc d'après ce qu'on à dit je vais modifier ma VisionContentView afin qu'elle contienne une TableView mais vous avez une idée d'ou peux venir la latence lors du slide de la vue 1 vers la vue 2 ?
Edit : sachant que mon chargement des données se fait dans VisionView et que VisionContent contient mes images, label etc
Edit2: je mange et je passe ma vue en TableView je vous tien au courant si le lag est encore présent ou pas
je viens de faire des tests en faites il exécute deux fois la fonction d'aller chercher les informations (récupération JSON), le chargement des données ne se met pas dans la Vue "Global" elle se met dans le controller ?
(rappel j'ai trois vue : Page View Controller, PageContent (contient les labels photo etc), Page Global (qui envoi les informations à la page Content)
Edit : en train de re-lire la doc :x
j'ai relu mon code et j'ai fais ça pour le moment :
Le pageviewcontroller et les pages suffisent je pense non ?
Je me suis demandé la même chose vu que je n'avais jamais fait de Page View Controller j'ai regardé un tuto afin de mieux comprendre et mon code est tiré de ce tuto
Voici le tuto :
http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/
Si quelqu'un peux y jeter un oe“il après c'est peut être au moment de l'adaptation à mon appli que j'ai fait une boulette ...
Si tu veux en savoir plus je te conseil de lire ca :
http://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/PageViewControllers.html
Et de regarder ca :
http://developer.apple.com/library/ios/samplecode/PhotoScroller/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010080
J'ai lu rapidement ton tuto et de ce que je vois ils utilisent un ViewController en init pour appeler le PageViewController après sur le principe, ils restent sur un PageViewControllerqui contient ses pages.
Oui c'est ça que j'ai du mal à comprendre le fait d'utiliser une vue pour appeler le Controller pourquoi ne pas juste utiliser le Controller et la viewContent ?
Je vais lire merci de ton aide.