Utilisation du code ci-dessous, je mets du texte d'un flacon dans un TextView. Le TextView n'est pas encore la main de chauffage; Le texte est initialement pour la lecture seulement. Dans iOS4, le code gotoendofnote positionne le curseur à la fin du texte et fait défiler cette position. Dans 3.1.3, il ne fait pas défiler jusqu'à la fin tant que l'écran n'est pas touché (ce qui n'est pas nécessaire, sauf si une modification ou une addition n'est requise), en faisant le Stratégie Straightsponder. J'aimerais que cela fonctionne dans 3.1.3 comme dans 4.0. Des idées s'il vous plaît. Merci.
... self.temp = [[[NSMutableArray alloc] initWithContentsOfFile:myPlistPath] autorelease]; self.textView.text = [self.temp objectAtIndex:0]; [self goToEndOfNote]; //[self performSelector:@selector(goToEndOfNote) withObject:nil afterDelay:0.1]; } - (void) goToEndOfNote { NSUInteger length = self.textView.text.length; self.textView.selectedRange = NSMakeRange(length, 0); }
4 Réponses :
J'utilise setContentOffset: animé code>
pour faire défiler jusqu'au sommet d'un uitextview code> dans l'une de mes applications. Devrait également fonctionner pour faire défiler vers le bas, aussi. Essayez:
- (void) goToEndOfNote {
NSUInteger length = self.textView.text.length;
self.textView.selectedRange = NSMakeRange(length, 0);
NSString* systemVersion = [[UIDevice currentDevice] systemVersion];
float version = [systemVersion floatValue];
if (version < 3.2) {
[textView setContentOffset:CGPointMake(0, length) animated:YES];
}
}
Presque mais pas tout à fait. Le TextView est la plupart de l'écran. Dans 4.0, la ligne Add'l [TextView SetContentSetOffset: CGPointMake (0, Longueur) Animation: Oui]; fait défiler le dernier caractère au bas de TextView (Good). En 3.1.3, il provoque le défilement du dernier défilement à mi-chemin de l'écran (OK), mais dans les deux versions du système d'exploitation, s'il n'y a que 1 ou 2 lignes à l'écran, ils sont défilés de l'écran (pas si bon). Je préférerais que le défilement ne commence qu'après qu'un écran de filiure est présent (comme il le fait en 4.0 avec seulement les 2 lignes originales de ma méthode).
Je ne sais pas si c'est la réponse, mais cela fonctionne.
in 3.1.3, avec le code d'origine, le curseur était à la fin, mais le rouleau était en haut. En 4.0, les deux étaient en bas. P>
NSUInteger length = self.textView.text.length; self.textView.selectedRange = NSMakeRange(0, length); self.textView.selectedRange = NSMakeRange(length, 0);
Vous pouvez utiliser [uitextview -setselectedRange:] code> pour définir un (emplacement = text_view_string_length, longueur = 0) Plage pour apporter le curseur à la fin du texte, puis appelez
[uitextview -scrollrangévevision:] code> avec la même plage pour défiler le curseur à visible. p>
Il est tard mais j'ai trouvé une solution de travail pour cela. Il a besoin d'un petit hack
Beaucoup plus propre lorsque vous utilisez Dispatch_After () code> car il enregistre une méthode et conserve la gâchette et l'action ensemble.