2013-02-19 20 views
6

Sto creando un'applicazione in cui è necessario implementare il completamento automatico quando un utente digita un input di testo, con le 10 parole più vicine/più alte che appaiono sotto il campo di testo.Implementazione del completamento automatico in iOS

mi è stata data una abbastanza grande elenco di circa 80.000 parole e il loro rispettivo 'priorità' - un numero che determina quanto in alto appaiono nel completamento automatico a seconda delle dimensioni del numero, in questo modo:

"transport international";19205 
"taxi";18462 
"location de voitures";18160 
"police";18126 
"formation";17858 

Sono un po 'nuovo per lo sviluppo di iOS e mi chiedevo qual è il modo migliore per farlo - devo dividere le 80.000 frasi in file più piccoli, o semplicemente tenerlo in uno? Cosa sarebbe più veloce?

Ho visto il completamento automatico utilizzato in un esempio per iOS ma era per una quantità minima di suggerimenti: non l'ho visto fare utilizzando un file così grande prima, e ovviamente mi piacerebbe renderlo veloce come possibile per l'esperienza utente aggiunta.

Qualsiasi suggerimento su esempi, tutorial o suggerimenti di codice sarebbe molto apprezzato, grazie.

risposta

6

Si consiglia di utilizzare questo repo HTAutocompleteTextField, soluzione perfetta.

+2

@ user1394965 [Questo repo] (https://github.com/EddyBorja/MLPAutoCompleteTextField) potrebbe essere quello che vuoi. –

+1

Prova il mio PJTernarySearchTree come origine dati per HTAutocompleteTextField: https://github.com/peakji/PJTernarySearchTree – PeakJi

2

https://github.com/TarasRoshko/TRAutocompleteView

Proprio conformi TRAutocompleteItemsSource protocollo e il gioco è fatto. Il protocollo è progettato con il supporto asincrono in mente. L'app dimostrativa e l'esempio TRGoogleMapsAutocompleteItemsSource ti saranno di grande aiuto.

7

Se si preferisce qualcosa che si completa automaticamente ma è una sottoclasse diretta di UITextField, allora MLPAutoCompleteTextField potrebbe interessarti.

MLPAutoCompleteTextField funziona richiedendo semplicemente la sua origine dati di completamento automatico per una serie di suggerimenti di completamento automatico ogni volta che cambia il testo nel campo di testo. Può anche ordinare automaticamente le parole in modo che quelle più vicine a ciò che l'utente sta digitando appariranno nella parte superiore dell'elenco di completamento automatico (utilizzando un algoritmo Levenshtein Distance). I suggerimenti di completamento automatico possono essere stringhe semplici o oggetti che implementano il protocollo MLPAutoCompletionObject.

Suggerimento: Per un set di dati completo di termini di completamento automatico, è probabile che si desideri suddividere l'elenco in base alle lettere iniziali. (Esempio: quando l'utente inserisce la lettera F, si dà al campo di testo automatico solo un elenco di parole che iniziano con F.)

MLPAutoCompleteTextField può ordinare in modo efficiente diverse migliaia di suggerimenti in un ragionevole lasso di tempo e non bloccherà mai il UI mentre si ordina.

Al momento, i suggerimenti ponderati (che sostituiscono l'ordinamento predefinito) non sono possibili ma è una funzionalità pianificata.

0

Questo link ha funzionato bene per me. A seconda del codice, non perdere la differenza tra UITextField e UITextView.

Nessuna libreria aggiuntiva, solo una semplice funzione personalizzata UITableView e ricerca.

Problemi correlati