Mi piacerebbe fare un qualche tipo di aggiornamento di un UITextView per riportare il textview allo stato originale. Ho un paragrafo che viene popolato dinamicamente a seconda di quale TableViewCell l'utente fa clic. Quindi quando fanno scorrere il campo di testo, poi tornano indietro e selezionano un'altra cella e ritornano, il testo cambia, ma la posizione di scorrimento rimane mentre l'utente la lascia. Come posso riportarlo allo stato predefinito. Grazie!Aggiorna la posizione di scorrimento di UITextView su iPhone
risposta
Per impostazione predefinita, si intende scorrere verso l'alto? Se è così, sei sulla strada giusta. Prova
[myTextView scrollRangeToVisible:NSMakeRange(0, 0)];
Ho provato anche quello, ma non sembrava andare nella parte superiore del testo. È solo vicino alla cima, ma non sembra il default. Sinceramente non ho una buona conoscenza della roba NSRange. –
Ho appena provato questo con un'applicazione che ho, e funziona per me. Puoi pubblicare uno screenshot del tuo simulatore in modo che possiamo vedere il comportamento? –
Ecco alcuni screencaps: INIZIALI, RIPRISTINATI MANUALMENTE E RICARICATI http://www.angelfilm.net/external/stackoverflow/mos/ –
ho scoperto che se ho chiaro l'UITextView prima e quindi applicare il nuovo testo, che verrà automaticamente "scorrere" back to the top.
myTextView.text = @"";
myTextView.text = theRealTextContent;
Nessuno di questi approcci ha funzionato in modo soddisfacente per me.
scrollRangeToVisible produce tonnellate di artefatti visivi (un sacco di scorrimento quando si passa da stringhe di grandi dimensioni), e infatti funziona solo a tutti in una chiamata ritardata po 'di tempo (io ho usato 0,1 secondi) dopo che il contenuto è stato modificato, non direttamente come implica la risposta di Shaggy Frog.
impostare il testo su @ "" prima di impostare il nuovo contenuto non ha aiutato, anche con un ritardo.
Sembra come se una volta UITextView è stato digitato, per sempre è in questa modalità in cui l'inserimento di nuovi contenuti provoca artefatti fastidiosi scorrimento. Ho provato a impostare anche selectRange all'inizio di UITextView, ma ciò non ha aiutato. Anche l'invio del messaggio resignFirstResponder prima di impostare i nuovi contenuti non ha aiutato.
Per questo motivo, ho deciso di eliminare e ricreare UITextView ogni volta che cambio il contenuto. Questo è un evento abbastanza raro (basato sull'interazione umana) nella mia app che non è un problema di prestazioni. Era l'unico modo in cui potevo trovare "caricare nuovi contenuti" in UITextView senza tonnellate di fastidiosi artefatti a scorrimento.
La mia esperienza è con OS3.2 (simulatore di iPad)
[textview setScrollEnabled:YES];
textview.text = yourText;
[textview setScrollEnabled:NO];
In realtà volevo interrompere lo scorrimento del testo durante l'aggiornamento del contenuto , così l'ho fatto al contrario e funziona perfettamente. Grazie. – soemarko
sono riuscito ad ottenere il risultato desiderato - costringendo l'UITextView a 'scorrimento' per la parte superiore del suo contenuto durante la modifica estremità. Ma per realizzarlo ho dovuto BOTH disabilitare lo scrolling in textViewDidEndEditing E ANCHE resettare il testo nello stesso metodo.
Riattivare lo scorrimento in textViewDidBeginEditing.
- (void) textViewDidEndEditing: textView;
{
[textView setScrollEnabled: NO];
NSString* savedText = [textView text];
[textView setText:@""];
[textView setText: savedText];
}
Questo funziona se si vuole scorrere fino alla cima:
[theTextView scrollRangeToVisible:NSMakeRange(0, 0)];
L'unico problema è che questa anima la sua strada fino. Se si desidera scattare verso l'alto, utilizzare questo:
[theTextView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
Questa soluzione ha funzionato per me. Ho caricato il testo in viewDidLoad, modificato ContentInset di UITextView e poi ho dovuto usare scrollRectToVisible per far sì che la parte superiore si allinei correttamente. Grazie – TMilligan
Ciò che alla fine ha funzionato per me quello che per cancellare il contenuto del testo e quindi impostare con il testo desiderato sul prossimo ciclo di esecuzione.
// clear the text view
self.textView.text = ""
// set the text on the next run loop
dispatch_async(dispatch_get_main_queue()) {
self.textView.text = someText
}
- 1. Ottenere la posizione del cursore in una UITextView su iPhone?
- 2. Scorrimento programmatico di uitextview
- 3. iphone UIWebView memorizza la posizione di scorrimento corrente?
- 4. Ottieni gli attuali valori di scorrimento di UIScrollView su iPhone?
- 5. Imposta posizione di scorrimento
- 6. UITextView scorrimento automatico giù
- 7. Chrome ricorda la posizione di scorrimento
- 8. Android set scrollLeft durante l'aggiornamento del contenuto sull'evento di scorrimento non aggiorna la posizione della barra di scorrimento
- 9. ListView ottiene la posizione di scorrimento?
- 10. come impostare la posizione di scorrimento su uiwebview
- 11. Come gestire la posizione di scorrimento su hashchange nell'applicazione Backbone.js?
- 12. UITextView modifica altezza invece di scorrimento
- 13. Come utilizzare la vista di scorrimento su iPhone?
- 14. Come visualizzare sempre la barra di scorrimento per UITextView?
- 15. iPhone - Problema con UITextView
- 16. CListCtrl: come mantenere la posizione di scorrimento?
- 17. Come nascondere la tastiera - di - UITextView iPhone - dal ritorno chiave
- 18. DataGrid WPF - mantiene la posizione di scorrimento dopo l'aggiornamento
- 19. TVOS UITextView non lo scorrimento
- 20. Come impostare la posizione del cursore in UITextView
- 21. Modifica posizione barra di scorrimento
- 22. Problema di scorrimento dell'elemento fisso di posizione su iOS
- 23. Come posso monitorare la posizione di scorrimento durante lo scorrimento in Safari su iOS?
- 24. UITextView non aggiorna il suo contenuto Dimensione
- 25. Dev dev iPhone: aumenta la velocità di scorrimento in UIWebView?
- 26. C#: sincronizza la posizione di scorrimento di due RichTextBox?
- 27. trovare la posizione di scorrimento massima di una pagina
- 28. Come mantenere la posizione di scorrimento usando la Pagina Master?
- 29. Come posso impostare la posizione di scorrimento di un UIScrollView?
- 30. Come si sincronizza la posizione di scorrimento di due div?
Come nota, ho cercato di usare [myTextView scrollRangeToVisible: NSMakeRange ([lunghezza myTextView.text], 0)]; –