disparition de texte dans un textView

Bonjour, je suis face à  un petit problème

J'ai une classe avec 2 view dedans, dans ces deux view j'ai une image de fond, un text view, et un bouton.

au début je met le view 2 dans la partie non visible de l'appli

lorsque l'on clique sur le bouton de la vue 1 on met la vue dans la partie non visible et la vue 2 dans la partie visible.

Et là  ho surprise le texte de mon text view n'est plus lisible...



voilà  mon code




<br />
//<br />
//  ViewController.h<br />
//  testFenetreText<br />
//<br />
//  Created by Vitanime on 10/09/12.<br />
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.<br />
//<br />
<br />
#import &lt;UIKit/UIKit.h&gt;<br />
<br />
@interface ViewController : UIViewController {<br />
<br />
    IBOutlet UIView *page1;<br />
    IBOutlet UIView *page2;<br />
<br />
    int pageEnCours;<br />
<br />
}<br />
- (IBAction)continue:(id)sender;<br />
@end<br />
<br />
//<br />
//  ViewController.m<br />
//  testFenetreText<br />
//<br />
//  Created by Vitanime on 10/09/12.<br />
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.<br />
//<br />
#import &quot;ViewController.h&quot;<br />
@interface ViewController ()<br />
@end<br />
@implementation ViewController<br />
- (void)viewDidLoad<br />
{<br />
	 pageEnCours=1;<br />
    page1.frame=CGRectMake (0, 0, page1.frame.size.width, page1.frame.size.height);<br />
    page2.frame=CGRectMake (-1025, 0, page2.frame.size.width, page2.frame.size.height);<br />
    [super viewDidLoad];<br />
    // Do any additional setup after loading the view, typically from a nib.<br />
}<br />
<br />
- (void)viewDidUnload<br />
{<br />
    [page1 release];<br />
    page1 = nil;<br />
    [page2 release];<br />
    page2 = nil;<br />
    [super viewDidUnload];<br />
    // Release any retained subviews of the main view.<br />
}<br />
<br />
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation<br />
{<br />
    return YES;<br />
}<br />
- (void)dealloc {<br />
    [page1 release];<br />
    [page2 release];<br />
    [super dealloc];<br />
}<br />
- (IBAction)continue:(id)sender{<br />
    if (pageEnCours==1) {<br />
	    page1.frame=CGRectMake (-1025, 0, page1.frame.size.width, page1.frame.size.height);<br />
	    page2.frame=CGRectMake (0, 0, page2.frame.size.width, page2.frame.size.height);<br />
	    pageEnCours=2;<br />
    }else {<br />
	    page1.frame=CGRectMake (0, 0, page1.frame.size.width, page1.frame.size.height);<br />
	    page2.frame=CGRectMake (-1025, 0, page2.frame.size.width, page2.frame.size.height);<br />
	    pageEnCours=1;<br />
    }<br />
<br />
}<br />
@end<br />




si vous avez une idée sur ce qui ne va pas dans mon code merci
Mots clés:

Réponses

  • AliGatorAliGator Membre, Modérateur
    Hello



    Si au démarrage de ton appli, histoire de tester, tu mets les 2 vues page1 et page2 visibles à  l'écran (juste en mettant dans ton CGRectMake des coordonnées adéquates), est-ce que tu as bien le texte sur les deux ? Autrement dit, est-ce que tu es sûr que ton problème vient vraiment du fait que tu affiches/masques tes vues page1/page2, es-tu sûr que ce n'est pas plutôt parce que tu as un problème dans ton XIB ou dans le code qui affecte le texte (ou un outlet pas connecté qui fait que tu tentes de remplir le texte de ton UILabel par code alors que ton outlet est encore à  nil, etc) ?



    Aussi, à  moins de vouloir à  terme faire des animations pour afficher tes pages, je te conseille de mettre plutôt la même frame pour les 2 vues et d'utiliser la propriété "hidden" de UIView pour en masquer l'une et afficher l'autre. Ca sera plus efficace (et plus simple) que de modifier les frame.
  • CéroceCéroce Membre, Modérateur
    À première vue, rien qui cloche dans ton code.

    Comment fais-tu pour mettre le texte dans les textViews ?
  • - Alors le texte est rempli directement dans le xib (pour simplifier au max je laisse le texte de remplissage au debut)

    - Si je remplace ma ligne


    <br />
    page2.frame=CGRectMake (-1025, 0, page2.frame.size.width, page2.frame.size.height);<br />
    




    par
    <br />
    page2.frame=CGRectMake (-500, 0, page2.frame.size.width, page2.frame.size.height);<br />
    




    les deux textes sont affichés correctement



    si lors de l'apparition du deuxième texte je clique dessus et que je bouge ma souris le texte apparait

    j'ai essayé de rajouter

    - un setContentOffset et un scrollRangeToVisible ca ne change rien



    je vais essayer avec des Hide mais je ne comprend quand même pas ce qu'il se passe
  • encore que les hide me bloque un peu pour animer l'apparition de la vue
  • CéroceCéroce Membre, Modérateur
    Ce que tu décris est bizarre, on dirait que le texte n'est pas dessiné dans la text view si elle n'est pas à  l'écran.
  • c'est apparement ça, je ne sais pas si c'est un bug, ou si il faut forcer l'affichage
  • d'ailleur si je met -800 à  la place du -500 dans mon page2.frame=CGRectMake je n'ai que la moitié du texte qui est visible
  • CéroceCéroce Membre, Modérateur
    Ben écoute, j'ai testé, et ça fonctionne impeccable.



  • je ne sais pas si ca joue quelque chose mais dans ton programme les deux textView ne son pas dans des views differentes. Voilà  mon code et lui il ne marche pas
  • je n'arrive pas a faire tourner ton programme directement, je l'ai donc repris, j'ai modifier weak en retain (car je ne maitrise pas encore tout) j'ai lancer le programme et ca ne marche pas, j'ai chercher et en refaisant le programme je l'avais mis pour ipad, je me dis non c'est pas possible, je change le format en Iphone ainsi dans le coup que le format de text view et la ca marche...

    Je comprend de moins en moins
  • et je rechange juste en IPAD ca ne fonctionne plus
Connectez-vous ou Inscrivez-vous pour répondre.