9 votes

Mise en œuvre de la recherche avancée dans l'iphone ?

Je veux mettre en œuvre une fonctionnalité de recherche avancée de sorte que si un texte particulier est tapé dans la barre de recherche, la liste de contenu dans UITableview devrait être filtrée sur la base de la recherche et ensuite les occurrences du texte recherché devraient être mises en évidence ? Veuillez me donner quelques idées ?

13voto

KingofBliss Points 9790

Utiliser NSAttributedString... Trouver les UIControllers qui dessinent NSAttribute String parce que UILabel,UITextView ne supporte pas NSAttributedString...

Obtenez le contrôleur ici : https://github.com/AliSoftware/Ali-Cocoa-Classes/tree/master/OHAttributedLabel

PS : si vous prévoyez de distribuer une application uniquement pour iOS6, comme UILabel supporte maintenant NSAttributedString, vous devriez utiliser UILabel directement au lieu de OHAttributedLabel car il est maintenant supporté nativement par l'OS.

0voto

bhavinb Points 2441

Je n'ai pas essayé quelque chose comme ça moi-même mais mon approche serait la suivante :

  1. Mettre en œuvre la méthode textField:shouldChangeCharactersInRange:replacementString: dans votre UITextFieldDelegate objet. Cette méthode sera appelée pour chaque caractère saisi ou supprimé de votre textField.

  2. Dans la méthode déléguée ci-dessus, sur la base du contenu actuel du texte dans le TextField, effectuez votre recherche et renvoyez une liste (tableau) de résultats.

  3. Prenez le tableau et pour chaque résultat, construisez une UITableViewCell personnalisée. Cette cellule doit contenir une UIWebView dont le texte est un extrait du résultat de votre recherche.

  4. Pour la mise en évidence, vous devez effectuer une recherche-remplacement dans le texte que vous êtes sur le point de rendre dans le WebView pour trouver la chaîne de recherche, disons foo par exemple, et la remplacer par <b>foo</b> ou tout autre formatage HTML que vous souhaitez appliquer. Vous pouvez utiliser l'API standard NSString - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement pour effectuer la recherche-remplacement.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X