Via Storyboard création de 1 ou n UIView

Bonjour,


 


Dans le but d'architecturer correctement ma petite application d'entrainement (et ainsi learn encore et encore sur le dev iOS), j'essaie de créer le moins d'objets de vues via programmatique mais plus via le ClicAuDrome(Storyboard) pour avoir un code clean, optimisé et des contrainte d'auto layout gérer uniquement via le ClicAuDrome.


 


Donc ma problematique:


 


Dans une ScrollView, j'implémente une UIView avec plusieurs objets dedans (UILabel et UIImage) pour former un bloc de data.


Mais si je veux au minimum un bloc et au maximum 'n' bloc selon mon model, comment (certainement en programmatique du coup) dupliquer le bloc initial et le mettre au bottom de celui ci et ainsi de suite:



var arrayDeVoitures: [String] = ["Clio", "Astra", "Zoé"]

UIView = Clio
^
UIviewCopy = Astra
^
UIViewCopy2 = Zoé


Merci.


En espérant avoir été clair.


 


 


 


 


Réponses

  • CéroceCéroce Membre, Modérateur
    mars 2016 modifié #2

    UIView n'implémente pas le protocole NSCopying est n'est donc pas copiable.


    On peut par contre instancier une nouvelle UIView et y copier les paramètres. Ou instancier un nouvel UIViewController depuis le storyboard ou un .xib.


     


    Cependant, tout cela n'a pas vraiment d'intérêt parce qu'on dispose de UITableView ou UICollectionView pour ce genre de choses qui ont la faculté de recycler des vues inutilisées.


     


    Ton exemple montre justement que tu prends le problème à  l'envers: ce ne sont pas les vues qui doivent être dupliquées, mais les modèles. Là , tout devient plus simple: tu disposes d'un array d'instances de la classe Vehicle (modèles) que tu affiches dans UITableViewCell (vues) comme d'habitude.


     


    J'espère avoir compris ton problème et répondu à  ta question.


  • Yes, tu m'a éclairé sur ma problématique, je n'avais pas du tout cette approche, je vous fait un retour as soon !!!


     


    Merci


  • i'm back, i'm darknight ... 


     


    Ok pour la collectionView c'est niquel, mais si je veux rentre la chose plus tricky !!!


     


    Donc la collectionView affiche 1 ou n marques de voiture et par marque de voiture (sans aller dans une détail view) afficher 1 ou n models !!! hahaha 


    Je pense qu'on ne peux pas mettre de collectionView dans une collectionViewCell mais alors comment faire ???


     


    Merci.


  • Hello,


    Agrandi ta cell et ajoute un picker, une image ou ce que tu veux dedans pour afficher tes modèles. J'ai du mal à  voir ton probleme.
  • Joanna CarterJoanna Carter Membre, Modérateur
    Tu peux utiliser les sections pour les marques, puis les cells pour les modèles.
  • hello,


     


    Mayerick, je n'ai pas vraiment de soucis, juste une petit problème de conception.


     


    Je trouve ça vraiment bizarre de tout faire a coup de UICollectionView.


     


    Mais bon je continue d'essayer.


     


    Merci à  tous de votre aide.


Connectez-vous ou Inscrivez-vous pour répondre.