使用核心文本设置给定字符串范围的背景颜色/突出显示颜色
-
12-10-2019 - |
题
我在iPhone应用中使用核心文本布置了一些文本。我在用着 NSAttributedString
为给定的范围设置文本中的某些样式。
我似乎找不到设置背景 /突出显示颜色的属性,尽管这似乎是可能的。我找不到听起来相关的属性名称常数,并且文档仅列出:
kCTCharacterShapeAttributeName
kCTFontAttributeName
kCTKernAttributeName
kCTLigatureAttributeName
kCTForegroundColorAttributeName
kCTForegroundColorFromContextAttributeName
kCTParagraphStyleAttributeName
kCTStrokeWidthAttributeName
kCTStrokeColorAttributeName
kCTSuperscriptAttributeName
kCTUnderlineColorAttributeName
kCTUnderlineStyleAttributeName
kCTVerticalFormsAttributeName
kCTGlyphInfoAttributeName
kCTRunDelegateAttributeName
Twitterrific的开发商Craig Hockenberry在Twitter上公开表示,他使用核心文本呈现了Tweets,而Twitterrific具有此背景 /突出显示,当您触摸链接时,我正在谈论。
谢谢。
编辑: 这是一个 链接到推文 克雷格(Craig 跟进 如果触摸与链接相交,则提到使用CTFrameSetter指标来解决。
解决方案
最后,我必须使用核心文本指标方法(获取范围,边界,线的起源等)来计算链接的边界矩形。一旦我对每行的矩阵置入了链接,我就将背景纳入上下文,然后重新绘制上方的文本。
看起来像是一件大事,但它起作用了。
其他提示
使用iOS 6,我认为您可以得到所需的效果:nsbackgroundcolorattributename。如:
[attributedString addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:selectedRange];
不隶属于 StackOverflow