尝试以类似于Google呈现搜索结果的格式在表格视图中生成搜索结果。添加属性时不需要帮助。寻找有关如何最好地呈现匹配文本的指导,如下面的Google屏幕截图示例所示。
下面的Google搜索结果示例使用 match 和 found 作为搜索字词。请注意字符串中显示的粗体匹配文本。 Google的结果显示了文本的一部分以显示上下文,这有助于用户确定相关性。但是,匹配文本的位置可能在多行字符串中很深:
到目前为止,我已经成功地引用了子类化的tableview单元中的UITextView出口并实例化了
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
子类化单元的分配为:
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell2", for: indexPath) as! TableViewCustomCell2
使用cell
可以引用UITextView出口,该出口可以访问诸如scrollRectToVisible
或scrollRangeToVisible
之类的滚动视图功能。使用后者,我使用包含每个匹配文本范围的数组的第一个元素来传递NSRange
参数。当我测试启用滚动功能的代码时,后者有效。但是,每次浏览搜索结果时都会调用scrollRangeToVisible
,这很烦人,无论如何,我都需要禁用滚动。
如果在单元格上调用func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
之后立即尝试禁止在scrollRangeToVisible
中滚动,则scrollRangeToVisible
不起作用。
在View Controller的生命周期中必须有一定的位置可以执行scrollRangeToVisible
,然后才能禁用滚动。关于如何最好地做到这一点的任何想法?是否有委托/协议可用于访问周期中所需的事件序列?还是我使用UITextView吠叫了错误的树?
或者,有人可以指出解决类似问题的github示例或stackoverflow问题吗?