UITextView n'affiche pas son texte avant un scroll

yoannyoann Membre
02:02 modifié dans API UIKit #1
Bonjour tout le monde,

Je cherche à  rajouter une page d'aide + crédit dans une application sur iPhone. Naturellement je me suis orienté vers l'UITextView pour l'affichage et un fichier .txt pour le contenue.

Mon UITextView est configuré pour avoir un fond transparant et une police de caractère blanche (le fond est noir).

Tout est bien chargé cependant je encontre un problème, à  savoir que l'UITextView n'applique les réglages de police et couleur de texte que lorsque l'utilisateur cherche à  déplacer le texte. Autrement le texte reste noir !

Je précise que le texte n'est réactualisé que lorsque l'utilisateur fait un scroll. S'il fait une double tape, le texte se sélectionne, avec les options de copier/coller mais toujours en noir ! O_o

Est-ce que quelqu'un a déjà  rencontré ce problème / sait ce que j'ai oublier ?

Merci bien

Réponses

  • allianallian Membre
    02:02 modifié #2
    Je sais pas si ca marche, mais vue qu'elle hérite de UIView, tu as essayé un setNeedsDisplay ?
  • yoannyoann Membre
    02:02 modifié #3
    Yep, le setNeedDisplay ne fait rien, ni même scrollRangeToVisible: !
  • allianallian Membre
    02:02 modifié #4
    la couleur du texte est affecté comment ? par IB ou dans ton code ?
  • AliGatorAliGator Membre, Modérateur
    02:02 modifié #5
    Oui moi j'essayerai par le code pour voir.
  • yoannyoann Membre
    02:02 modifié #6
    Assigné par IB

    J'ai testé de faire tout par code (y compris alloc/init) et j'ai le même problème !

    Un détail que j'ai oublié, la NSTextView n'est pas dans la zone affiché lors du lancement de l'appli. Sur ma homeView j'ai 400px de plus en haut pour la helpView et 106 en bas pour un PickerView et je déplace ma vue avec animation en fonction des choix de l'utilisateur (ça me permet d'afficher l'aide et les settings avec un animation assez sympa je trouve vu que le home scren en lui meme reste en partie visible)

    J'ai essayé de placer un setNeedDisplay une fois la zone du helpView affiché et rien n'y fait :-/
  • yoannyoann Membre
    02:02 modifié #7
    Voici une petit appli d'exemple, regardez ce que ça fait actuellement, et essayez pour voir de changer la taille du UITextView dans IB de sorte qu'un peut du bas de la vue soit affiché (+ de 400 en hauteur), dans ce cas la le texte est bien chargé !

    Qu'est-ce que j'ai raté ?
  • yoannyoann Membre
    02:02 modifié #8
    Personne n'a d'idées ?
  • 02:02 modifié #9
    Mon pauvre Yoann  ;D
  • Philippe49Philippe49 Membre
    02:02 modifié #10
    Comportement bizarre en effet.
    • Si on ne change pas le texte dans viewDidLoad: ou viewDidAppear: et si on met un texte dans IB, la couleur est bonne
    • Si on met le texte dans la methode l'action help, aussi.

    ?
  • Philippe49Philippe49 Membre
    août 2009 modifié #11
    Si on met le fond bleu, ce qui permettrait de voir le texte en noir, on se rend compte également que le texte n'est toujours pas dessiné.
    J'en déduis personnellement qu'il faut faire des view de la taille standard, d'ailleurs elle est redimensionnée automatiquement cette vue : après l'affichage cela donne : <UIView: 0xd29840; frame = (0 0; 320 480)> . Ce que l'on ne sait mal ici ce sont les règles suivis pour le redimensionnement : J'ai mis center dans le popup de la view, le fond bleu pour la vue 280x800, le fond blanc pour la window, et mon écran est plein bleu ! joli ... mais curieux, n'est-il pas?
  • yoannyoann Membre
    août 2009 modifié #12
    dans 1249372970:

    Si on met le fond bleu, ce qui permettrait de voir le texte en noir, on se rend compte également que le texte n'est toujours pas dessiné.
    J'en déduis personnellement qu'il faut faire des view de la taille standard, d'ailleurs elle est redimensionnée automatiquement cette vue : après l'affichage cela donne : <UIView: 0xd29840; frame = (0 0; 320 480)> . Ce que l'on ne sait mal ici ce sont les règles suivis pour le redimensionnement : J'ai mis center dans le popup de la view, le fond bleu pour la vue 280x800, le fond blanc pour la window, et mon écran est plein bleu ! joli ... mais curieux, n'est-il pas?




    Louka m'avais fait remarqué le problème avec le fond d'une autre couleur, en gros cela doit être les méthodes de drawing qui ne calcul pas ce qui est hors cadre.

    Il faudrait que je trouve une manière de faire plus jolie que redimensionner la vue tout en gardant le style actuel qui permet de garder un bout de l'accueil à  l'écran, c'est plutôt sympa comme rendu sur l'application finale


    Pour ma part je suis passé outre le problème (histoire de pouvoir finir le reste de l'appli) en faisant une textView de 401px, elle est dessiné de cette manière la mais ne se voit pas pour autant.
  • Philippe49Philippe49 Membre
    02:02 modifié #13
    dans 1249373556:

    Il faudrait que je trouve une manière de faire plus jolie que redimensionner la vue tout en gardant le style actuel qui permet de garder un bout de l'accueil à  l'écran, c'est plutôt sympa comme rendu sur l'application finale

    Un système de page control : une scrollview en global de frame standard, et une contentsize qui déborde .. ?
  • yoannyoann Membre
    02:02 modifié #14
    dans 1249374253:

    dans 1249373556:

    Il faudrait que je trouve une manière de faire plus jolie que redimensionner la vue tout en gardant le style actuel qui permet de garder un bout de l'accueil à  l'écran, c'est plutôt sympa comme rendu sur l'application finale

    Un système de page control : une scrollview en global de frame standard, et une contentsize qui déborde .. ?



    En effet c'est bien mieux ^^ et au moins la textView est bien dessiné par la scrollView

    Je n'y avait pas pensé
Connectez-vous ou Inscrivez-vous pour répondre.