我想实现高级搜索功能,以便如果在搜索栏中输入特定文本,则应根据搜索过滤 UITableview 中的内容列表,然后突出显示搜索文本出现的情况?请给我一些想法?

有帮助吗?

解决方案

使用NSAttributedString ...查找画NSAttribute字符串UIControllers因为的UILabel,UITextView的不列入支持NSAttributedString ...

这里获取控制器: https://github.com/AliSoftware /阿里可可类/树/主/ OHAttributedLabel

PS:如果你打算分发iOS6的,唯一的应用程序,为的UILabel现在支持NSAttributedString,你应该使用的UILabel的,而不是直接OHAttributedLabel,因为它是现在本地OS支持

其他提示

我自己没有尝试过这样的事情,但我的方法如下:

  1. 实施该方法 textField:shouldChangeCharactersInRange:replacementString: 在你的 UITextFieldDelegate 目的。对于从文本字段中输入或删除的每个字符都会调用此方法。

  2. 在上面的委托方法中,根据 TextField 中的当前文本内容,执行搜索并返回结果列表(数组)。

  3. 获取数组并为每个结果构造一个自定义 UITableViewCell。该单元格应该有一个 UIWebView,其文本是搜索结果的摘录。

  4. 为了突出显示,您需要在要在 WebView 中呈现的文本中执行搜索替换以查找搜索字符串,例如 foo,并将其替换为 <b>foo</b> 或您可能希望应用的任何其他 HTML 格式。您可以使用标准 NSString API- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement 进行查找替换。

希望这可以帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top