2010-06-29 7 views
0

Je suis désolé pour mon anglais je ne suis pas très bon, je code dans l'objectif-c, j'essaie de mettre du texte dans un uiscrollview et mettre à jour le contenu de la scrollview juste après. J'ai une boucle et je mets le texte avec la méthode [UIScrollView setText:] dans cette boucle, mais le texte ne figure que dans le scrollview à la fin de la boucle ...Comment mettre à jour une vue déroulante?

grâce Alex

Répondre

0

Vous devez d'abord créer votre chaîne, puis appeler le texte défini. Définir le texte d'abord efface le texte existant. Aussi, je suppose que vous voulez dire UITextView (une sous-classe de UIScrollView) car il a une propriété 'text'. Essayez:

NSString *text = [NSString string]; 

for (NSString *line in lines) 
{ 
    text = [text stringByAppendingString:line]; 
} 

[self.textScrollView setText:text]; 
0
  1. Depuis quand le UIScrollView a une propriété de texte .. Voulez-vous dire UITextView? Si la boucle est dans le thread principal, l'interface utilisateur sera probablement mise à jour seulement après avoir terminé la méthode (avec la boucle à l'intérieur) - exactement comme vous écrivez. Une solution possible pourrait être d'exécuter la méthode avec la boucle dans le thread d'arrière-plan (par exemple, [self performSelectorInBackground:@selector(updateScrollViewInLoop) withObject:nil];) et, à l'intérieur de la boucle, de mettre à jour la vue déroulante dans le thread principal ([uiscrollview performSelectorOnMainThread:@selector(setText:) withObject:text waitUntilDone:YES];).

  2. Vous pouvez également ajouter la ligne [uiscrollview setNeedsDisplay]; juste après la mise à jour du texte. Je ne suis pas sûr que cela aidera à cause du deuxième point ci-dessus et, de plus, je pense que cette ligne est appelée en arrière-plan quand vous changez le contenu de la vue déroulante ...

+0

Salut, désolé c'est un scrollview maintenant pas uitextview, mais maintenant je ne mets pas de texte dedans j'ajoute subview comme étiquette et bouton dans ma boucle, quand j'appelle la méthode avec la boucle en arrière-plan, je prends juste cette ligne: [ self performSelectorInBackground: @selector (updateScrollViewInLoop) withObject: nil];) et de remplacer "updateScrollViewInLoop" par ma méthode [objectdownloadFile downloadFile: urlWeb: scrollViewTelecharger]; est-ce que c'est ?? parce qu'il ne compile pas ... merci encore Alex – Alex

Questions connexes