I want to implement advance search functionality so that if a particular text is typed in search bar, the list of contents in UITablevi开发者_StackOverflowew should be filtered based on the search and then the search text occurances should be highlighted? Please give me some ideas?
Use NSAttributedString... Find UIControllers that draw NSAttribute String because UILabel,UITextView doesnot support NSAttributedString...
Get the controller here: https://github.com/AliSoftware/Ali-Cocoa-Classes/tree/master/OHAttributedLabel
PS: if you plan to distribute an iOS6-only application, as UILabel now support NSAttributedString, you should use UILabel directly instead of OHAttributedLabel as it is now natively supported by the OS.
I haven't tried something like this myself but my approach would be as follows:
Implement the method
textField:shouldChangeCharactersInRange:replacementString:
in yourUITextFieldDelegate
object. This method will get called for every character that is entered or deleted from your textField.In the above delegate method, based on the current text content in the TextField, perform your search and return a list(array) of results.
Take the array and for each result construct a custom UITableViewCell. This cell should have a UIWebView whose text is an excerpt of your search result.
For the highlighting, you need to perform a search-replace in the text you are about to render in the WebView to find the search string, say foo for example, and replace it with
<b>foo</b>
or any other HTML formatting you may wish to apply. You can use the standard NSString API- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
to do the find-replace.
Hope this helps.
精彩评论