Partage
  • Partager sur Facebook
  • Partager sur Twitter

[iOS] Zone de texte qu'on peut bouger

Dans l'application elle-même

    1 mai 2012 à 12:31:31

    Bonjour,

    Je travaille actuellement sur une application iPad dans laquelle j'aimerais bien ajouter la fonctionnalité suivante:

    Permettre à l'utilisateur d'ajouter un champ de texte, d'en supprimer un, de l'agrandir, et bien sûr, de pouvoir y entrer du texte. J'ai cherché sur google (bien que je ne sache pas trop sur quoi faire ma recherche) mais je n'ai pas trouvé de réponse. J'en fais donc appelle à vous: est-ce réalisable ou pas du tout ?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      1 mai 2012 à 17:19:52

      Salut,

      Pour faire ce genre de chose, le plus approprié est selon moi de créer ton UITextField "programmaticaly", c'est à dire uniquement par le code.

      Tu auras ensuite plus de souplesse pour le modifier à ta guise.

      En effet, pas besoin d'utiliser le Storyboard, d'appuyer sur Ctrl pour ensuite le glisser dans le .h et ainsi de suite. Après tout dépend de ton application bien sûr.

      Pour trouver comment faire ce genre de chose, je tape généralement sur google "UITextField programmatically" et tombe ensuite sur un code tout fait. Je le modifie en m'aidant de la doc et de l'autocompletion de xcode.

      En cherchant un peu dans ma banque de tutos iOS (http://www.pearltrees.com/t/ios/id4668944) j'ai trouvé ce code :

      UITextField *playerTextField = [ [ UITextField alloc ] initWithFrame: CGRectMake(150, 10, 145, 34) ];
             playerTextField.adjustsFontSizeToFitWidth = YES;
             playerTextField.textColor = [UIColor blackColor];
             playerTextField.font = [UIFont systemFontOfSize:17.0];
             playerTextField.placeholder = @"";
             playerTextField.backgroundColor = [UIColor clearColor];
             playerTextField.autocorrectionType = UITextAutocorrectionTypeNo;        // no auto correction support
             playerTextField.autocapitalizationType = UITextAutocapitalizationTypeNone; // no auto capitalization support
             playerTextField.textAlignment = UITextAlignmentRight;
             playerTextField.keyboardType = UIKeyboardTypeDefault; // use the default type input method (entire keyboard)
             playerTextField.returnKeyType = UIReturnKeyDone;
             playerTextField.tag = 0;
             playerTextField.delegate = self;
      playerTextField.text = @"";
             [ playerTextField setEnabled: YES ];
             [ self addSubview: playerTextField ];
      


      N'hésite pas si tu as davantage de questions, je suis aussi débutant en programmation iOS mais je pourrai peut être t'aider ou te donner quelques conseils !
      • Partager sur Facebook
      • Partager sur Twitter
        1 mai 2012 à 18:28:57

        Merci beaucoup de ta réponse. J'irai regarder de ce coté là après avoir fini l'interface graphique de mon application :)

        EDIT:

        J'ai un problème pour afficher des images. En fait, j'ai une UIView (qu'on appellera subview) dans ma UIView principale.

        Image utilisateur
        Image en grand

        Ma subview est la bande verticale noire à gauche. En fonction du choix sur le PickerView, j'aimerais afficher une liste d'image sous le PickerView, avec deux images par "ligne". S'il y a trop d'images pour la hauteur de la partie sous le PickerView, il y aurait un scroll juste pour cette partie là afin de pouvoir continuer à afficher les images. Chaque sélection sur le PickerView a sa propre liste d'image.

        Je ne vois pas trop comment faire, dois-je à chaque fois créer une image et lui donner des coordonnées précises ? Cette solution me semble peut pratique, si j'ai 20 images, je vais devoir calculer 20 fois les coordonnées pour les afficher à la suite avec deux images par ligne...

        Merci d'avance
        • Partager sur Facebook
        • Partager sur Twitter
          2 mai 2012 à 15:53:32

          Tu as juste à afficher tes images en fonction de la taille des images du dessus.

          Pour cela tu créer une variable temporaire stockant la taille de la ligne précédente (la hauteur de l'image la plus grande de la ligne : CGFloat top = CGFloat image.size.height)

          Et tu places les images suivante en fonction de cette variable.

          Avec une boucle FOR c'est assez "simple" à implémenter.
          • Partager sur Facebook
          • Partager sur Twitter
            2 mai 2012 à 16:48:55

            Il y a moyen d'ajouter une UIView dans un UIPopOver ?
            • Partager sur Facebook
            • Partager sur Twitter

            [iOS] Zone de texte qu'on peut bouger

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown