是否可以在tableView单元格内突出显示文本的子字符串?

时间:2019-01-28 03:01:38

标签: ios swift uitableview

我有一个表格视图,可以使用搜索栏进行搜索。

我想用高亮或粗体显示与传递到搜索栏中的字符串匹配的文本。

例如,如果表视图包含:“ Apple”和“ Orange”,并且键入字母“ a”,则希望单元格现在包含“ A pple”和“ Or < strong> a nge”

通过谷歌搜索,我还没有找到一种方法来修改表视图title属性中的文本子字符串。

有人知道这是否有可能吗?

我想要在表格视图中实现的目标是这样的

Something like this is what I am trying to achieve

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

func attributedText(withString string: String, boldString: String, font: UIFont) -> NSAttributedString {
  let attributedString = NSMutableAttributedString(string: string,
                                             attributes: [NSAttributedString.Key.font: font])
  let boldFontAttribute: [NSAttributedString.Key: Any] = [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: font.pointSize)]
  let range = (string as NSString).range(of: boldString)
  attributedString.addAttributes(boldFontAttribute, range: range)
  return attributedString
}

通过cellForRowAtIndexPath方法传递总字符串和搜索字符串,并将返回值attributedString分配给您的标签

它可能会帮助您。谢谢。