在表格视图搜索文本结果中显示匹配的文本

时间:2019-05-09 16:14:51

标签: swift

尝试以类似于Google呈现搜索结果的格式在表格视图中生成搜索结果。添加属性时不需要帮助。寻找有关如何最好地呈现匹配文本的指导,如下面的Google屏幕截图示例所示。

下面的Google搜索结果示例使用 match found 作为搜索字词。请注意字符串中显示的粗体匹配文本。 Google的结果显示了文本的一部分以显示上下文,这有助于用户确定相关性。但是,匹配文本的位置可能在多行字符串中很深:

See sample image below 到目前为止,我已经成功地引用了子类化的tableview单元中的UITextView出口并实例化了override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

中的子类化的单元

子类化单元的分配为:

let cell = tableView.dequeueReusableCell(withIdentifier: "Cell2", for: indexPath) as! TableViewCustomCell2

使用cell可以引用UITextView出口,该出口可以访问诸如scrollRectToVisiblescrollRangeToVisible之类的滚动视图功能。使用后者,我使用包含每个匹配文本范围的数组的第一个元素来传递NSRange参数。当我测试启用滚动功能的代码时,后者有效。但是,每次浏览搜索结果时都会调用scrollRangeToVisible,这很烦人,无论如何,我都需要禁用滚动。

如果在单元格上调用func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell之后立即尝试禁止在scrollRangeToVisible中滚动,则scrollRangeToVisible不起作用。

在View Controller的生命周期中必须有一定的位置可以执行scrollRangeToVisible,然后才能禁用滚动。关于如何最好地做到这一点的任何想法?是否有委托/协议可用于访问周期中所需的事件序列?还是我使用UITextView吠叫了错误的树?

或者,有人可以指出解决类似问题的github示例或stackoverflow问题吗?

0 个答案:

没有答案