2010-11-17 11 views
9

Deseo implementar la funcionalidad de búsqueda avanzada para que, si se escribe un texto en particular en la barra de búsqueda, la lista de contenidos en UITableview se filtre en función de la búsqueda y luego se resalten las ocurrencias del texto de búsqueda. Por favor, dame algunas ideas?¿Implementación de búsqueda avanzada en iphone?

Respuesta

13

Uso NSAttributedString ... Encuentra UIControllers que atraen NSAttribute cadena porque UILabel, UITextView doesnot apoyo NSAttributedString ...

Obtener el controlador aquí: https://github.com/AliSoftware/Ali-Cocoa-Classes/tree/master/OHAttributedLabel

PD: si va a distribuir un iOS6- única aplicación, como UILabel ahora admite NSAttributedString, debe usar UILabel directamente en lugar de OHAttributedLabel, ya que ahora es compatible de forma nativa con el sistema operativo.

+0

No encuentro los controladores para la cadena NSAttributed –

+2

Pruebe con este código de ejemplo .. https://github.com/AliSoftware/Ali-Cocoa-Classes – KingofBliss

+1

No se olvide de agregar el CoreText.framework. –

0

no he probado algo como esto a mí mismo, pero mi enfoque sería de la siguiente manera:

  1. implementar el método textField:shouldChangeCharactersInRange:replacementString: en su objeto UITextFieldDelegate. Se llamará a este método para cada personaje que se ingrese o elimine de su campo de texto.

  2. En el método delegado anterior, basado en el contenido de texto actual en el campo de texto, realice su búsqueda y devuelva una lista (matriz) de resultados.

  3. Tome la matriz y para cada resultado construya una UITableViewCell personalizada. Esta celda debe tener un UIWebView cuyo texto es un extracto de su resultado de búsqueda.

  4. Para el resaltado, es necesario realizar una búsqueda de reemplazar en el texto que está a punto de hacer en la vista Web para encontrar la cadena de búsqueda, dicen foo por ejemplo, y reemplazarlo con <b>foo</b> o cualquier otro HTML que puedes formatear puede desear aplicar Puede usar la API de NSString estándar - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement para realizar la búsqueda de reemplazo.

Espero que esto ayude.

+1

Primero también probé con UIwebView pero lleva mucho tiempo cargar, así que cambié a esto. No, es mucho más rápido y se ve genial ... – KingofBliss

Cuestiones relacionadas