Auto Layout - Quiz View

Salut tout le monde,


J'ai un petit souci avec la vue de mon quiz.

J'ai décidé d'utiliser une tableview au lieu d'une UIView car je trouvais cela plus pratique.

Seulement maintenant, mon app sur les devises a petit écran iPhone 5 par exemple, c'est mocheees :)

Si j'utilise automatic Dimension pour les cell de ma table ça donne quelque chose d'encore plus moche puisque les textes de mes boutons alors déborde

Je ne sais pas par ou prendre ce petit problème sans avoir a tout casser 


Réponses

  • CéroceCéroce Membre, Modérateur
    mai 2017 modifié #2

    À l'intérieur d'une cellule (UITableCellView), tu peux également ajouter des contraintes.


     


    Note que certains contrôles, ont une taille "intrinsèque". Par exemple, on ne peut pas fixer la taille d'un UISwitch, ni la hauteur d'un UISlider horizontal.


    UILabel est un cas particulier, puisqu'on peut fixer sa taille, mais si on ne le fait pas, il va prendre sa taille intrinsèque: s'étendre pour afficher le texte qu'il contient. En général, on va donc seulement fixer son Left ou Right, et Top ou Bottom ou Baseline. C'est très pratique.




  • À l'intérieur d'une cellule (UITableCellView), tu peux également ajouter des contraintes.


     


    Note que certains contrôles, ont une taille "intrinsèque". Par exemple, on ne peut pas fixer la taille d'un UISwitch, ni la hauteur d'un UISlider horizontal.


    UILabel est un cas particulier, puisqu'on peut fixer sa taille, mais si on ne le fait pas, il va prendre sa taille intrinsèque: s'étendre pour afficher le texte qu'il contient. En général, on va donc seulement fixer son Left ou Right, et Top ou Bottom ou Baseline. C'est très pratique.




     


    Ou je vois. Mais en faisant cela, le UILabel s'agrandit et ou se redressit mais pas le texte qu'il contient. Si ?

  • Joanna CarterJoanna Carter Membre, Modérateur
    mai 2017 modifié #4

    Il y a une option pour le texte sur UILabel de Autoshrink


  • CéroceCéroce Membre, Modérateur

    La réponse de Joanna est tout à  fait exacte, mais d'expérience, on veut que la disposition marche même sur un petit écran, sans avoir à  réduire le texte.


     


    Dans l'exemple que tu donnes, le label Score est bien trop à  droite, et on a largement la place d'écrire Question en entier.


  • DrakenDraken Membre

    J'ajoute que la police de caractères des réponses est trop petite, du moins dans ton exemple. Cela pourrais être plus lisible avec une police plus grande et un affichage sur deux lignes.


     


     


     




  • J'ajoute que la police de caractères des réponses est trop petite, du moins dans ton exemple. Cela pourrais être plus lisible avec une police plus grande et un affichage sur deux lignes.




     


    Je suis tout à  fait de ton avis.


     


    Seulement mes réponse varies et certain compte plus de 5-7 mots et franchement j'aimerais bien que cela ce présent mieux mais si j'augmente ça déborde sur les autres questions.


     


    une idée de comment ?

  • DrakenDraken Membre
    mai 2017 modifié #8

    Pourquoi ne pas ajuster la taille de la police en fonction du nombre de caractères à  afficher ?


     


    Avec par exemple une police pour les textes de moins de 20 caractères, une autre pour les textes de 20 à  40 caractères et une plus petite au delà  de 40 (chiffres bidons à  tester en situation réelle).



  • Pourquoi ne pas ajuster la taille de la police en fonction du nombre de caractères à  afficher ?


     


    Avec par exemple une police pour les textes de moins de 20 caractères, une autre pour les textes de 20 à  40 caractères et une plus petite au delà  de 40 (chiffres bidons à  tester en situation réelle).




     


     


    Je vais chercher dans ce sens :)


     


    Merci bien

  • LarmeLarme Membre
    mai 2017 modifié #10

    Je ne vois absolument pas où tu as mis ton UITableView, enfin, la disposition des Cells (qu'est-e qui est cell)


    Tu aurais pu utiliser une UICollectionView avec 3 cells différentes (question, info, réponses, ce qui est peut-être plus rapide à  mettre en place que d'ajouter des headers/kind différents) et un p'tit layout perso (cela me semble assez simple à  mettre en place vu ton cas assez basique).


    Voire, just une Collection pour les réponses, et le reste en "statique" (UIView simple)


    Il faut juste après définir entre chaque cellules les bordures.


    Tu peux jouer sur les UILabel sur un minimumScaleFactor pour réduire au besoin le texte.




  • Je ne vois absolument pas où tu as mis ton UITableView, enfin, la disposition des Cells (qu'est-e qui est cell)


    Tu aurais pu utiliser une UICollectionView avec 3 cells différentes (question, info, réponses, ce qui est peut-être plus rapide à  mettre en place que d'ajouter des headers/kind différents) et un p'tit layout perso (cela me semble assez simple à  mettre en place vu ton cas assez basique).


    Voire, just une Collection pour les réponses, et le reste en "statique" (UIView simple)


    Il faut juste après définir entre chaque cellules les bordures.


    Tu peux jouer sur les UILabel sur un minimumScaleFactor pour réduire au besoin le texte.




     


     


    Chaque élément est dans une cell


     


    la view pour les questions


    la view pour les score et question x/xx


     


    et les boutons de réponse par deux


     


     


    en tout j'ai 4 cell

  • Joanna CarterJoanna Carter Membre, Modérateur


    Pourquoi ne pas ajuster la taille de la police en fonction du nombre de caractères à  afficher ?


     


    Avec par exemple une police pour les textes de moins de 20 caractères, une autre pour les textes de 20 à  40 caractères et une plus petite au delà  de 40 (chiffres bidons à  tester en situation réelle).




     


    C'est exactement ce que Autoshrink fasse.



  • C'est exactement ce que Autoshrink fasse.




     


     


    Scale ou SIZE ?

  • Joanna CarterJoanna Carter Membre, Modérateur

    Pour le minimum ? ça dépend. Moi, je préfère spécifier le minimum size pour limiter l'illisibilité.




  • Pour le minimum ? ça dépend. Moi, je préfère spécifier le minimum size pour limiter l'illisibilité.




     


     


    Merci beaucoup.


     


    J'ai fais ça pour l'instant avec un label c'est top



  • C'est exactement ce que Autoshrink fasse.




     


    cela ne fonctionnement pas malheureusement pour les boutons...savez-vous quel est l'équivalent pour les BTN ?

  • L'Auto Layout n'est pas accessible dans une scène, j'ai raté quelque chose ?


  • Joanna CarterJoanna Carter Membre, Modérateur
    novembre 2017 modifié #18

    Oui.


     


    L'autolayout est toujours disponible. Il ne faut que commencer à  ajouter des contraintes.


     


    Avant d'ajouter des contraintes, IB utilise l'ancien système de "springs and struts" et tu peux y rester si ton agencement n'est pas trop compliqué




  • Oui.


     


    L'autolayout est toujours disponible. Il ne faut que commencer à  ajouter des contraintes.


     


    Avant d'ajouter des contraintes, IB utilise l'ancien système de "springs and struts" et tu peux y rester si ton agencement n'est pas trop compliqué




    Autolayout disponible a condition que la case correspondante de l'inspecteur soit cochée (option par défaut)


     


    Pour le cas qui m'intéresse elle était bien cochée, par principe je l'ai décochée et recochée... Mais ça ne change rien, est-ce le fait d'avoir coché quelques options de dimensions qui désactive l'auto layout 

  • Joanna CarterJoanna Carter Membre, Modérateur

    Tu utilises quelle version de Xcode ?


  • GercofisGercofis Membre
    novembre 2017 modifié #21

    la dernière 9.1


     


    J'ai tenté de nouvelle création toujours pas d'Auto-Layout je pense qu'une restauration complète  s'impose...


  • Joanna CarterJoanna Carter Membre, Modérateur

    Je viens de créer un nouveau storyboard - j'ai décocher autolayout - j'ai essayé de créer des contraintes (pas possible) - recocher le cas - piff-paff-pouff ! je peux créer les contraintes.


  • C'est bien ce qui ne marche pas chez moi !!


  • Restauration complète cette nuit, qui semble s'être très bien passée d'ailleurs...


     


    Le lien @IBOutlet et @IBAction semble bien être revenu...


     


    Par contre pas de D&D correct dans l'éditeur de code...


    Impossible d'ajouter des contraintes dans les nouveaux ViewController...


     


    A la réflexion je me demande si ce n'est pas depuis que j'ai viré Xcode 9 Béta (coincé dans la corbeille)


     


    Pensez-vous qu'une nouvelle installation d'Xcode réglerait le problème ?




  •  


    Pensez-vous qu'une nouvelle installation d'Xcode réglerait le problème ?




    Probablement, puisque tu sembles le seul à  avoir ce dysfonctionnement. Mais efface tout ce qui est lié à  Xcode avant d'en installer une nouvelle version.


     


    En tout cas la bêta 2 d'Xcode 9.2 fonctionne bien.

  • GercofisGercofis Membre
    novembre 2017 modifié #26

    Le seul non, j'ai tout viré fichiers liés compris, le téléchargement est en cours, bientôt fini d'ailleurs.


     


    J'ai même vidé la corbeille et me suis aperçu qu"Xcode était verrouillé dedans et il restait même la bêta précédente.




  •  


    J'ai même vidé la corbeille et me suis aperçu qu"Xcode était verrouillé dedans et il restait même la bêta précédente.




    J'ai eu le même problème en passant d'Xcode 9.2 bêta 1 à  la bêta 2, solutionné par un reboot.

  • GercofisGercofis Membre
    novembre 2017 modifié #28

    Pour le coup en lisant ta réponse j'ai rebooté, rien n'y fait ?


     


    J'ai même tenté d'utiliser Xcode sur une autre cession rien a faire !!


     


    ça commence e me gonfler sérieusement même...


     


    Je me pose un tas de questions une restauration finalement restaure la cession telle qu'elle sans remettre un système neuf ?


     


    Du coup n'eut-il pas mieux valu  réinstaller un système neuf/propre et importer la cession.


     


    Une chose bizarre tout de même c'est qu'ayant tout virer les fichiers liés a Xcode ce dernier a bien retrouvé les projets récents donc une plist subsiste bien quelque part ?


     


    Bon pour l'absence d'un D&D correct passe encore, mais l'absence de contraintes peut assez vite poser des problèmes ? Surtout que je commençais a maitriser un poil.


     


    Chose a noter c'est une scène précédente créée les contraintes sont possible ? dans le même projet

  • Euh .. t'as pensé a rebooter aussi ta poupée vaudou ? Ou changer ses rognures d'ongles ? Parce que franchement, je ne vois plus rien d'autre à  faire ..

  • GercofisGercofis Membre
    novembre 2017 modifié #30

    Pour précisions en fait c'est la Content View d'une TableViewCell et c'est tout a fait possible que le problème était a la création de cette scène. Sur des trucs précédents je pouvais Layouer dans une ContentView me semble-t-il ?


     


    Je viens de refaire un test sur une scène neuve classique et ça fonctionne ? Vas comprendre Charles !!


     


    En tous cas avec tout ce nettoyage j'ai gagné de la place et de la vélocité aussi...


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