我在iPhone应用中使用Core Text布局了一些文字。我正在使用NSAttributedString
在给定范围的文本中设置某些样式。
我似乎无法找到设置背景/高亮颜色的属性,尽管看起来有可能。我找不到一个听起来相关的属性名称常量,文档只列出:
kCTCharacterShapeAttributeName
kCTFontAttributeName
kCTKernAttributeName
kCTLigatureAttributeName
kCTForegroundColorAttributeName
kCTForegroundColorFromContextAttributeName
kCTParagraphStyleAttributeName
kCTStrokeWidthAttributeName
kCTStrokeColorAttributeName
kCTSuperscriptAttributeName
kCTUnderlineColorAttributeName
kCTUnderlineStyleAttributeName
kCTVerticalFormsAttributeName
kCTGlyphInfoAttributeName
kCTRunDelegateAttributeName
Twitter上的Twitter开发人员Craig Hockenberry已经在Twitter上公开表示他使用Core Text来呈现推文,Twitterrific有这个背景/亮点,当你触摸链接时我正在讨论。
任何正确方向的帮助或指示都会非常棒,谢谢。
修改:这是一个link to the tweet Craig发布了提及“核心文本,归因于字符串和大量努力工作”,以及提到使用CTFrameSetter指标工作的follow up如果触摸与链接相交。
答案 0 :(得分:3)
最后,我不得不使用Core Text度量方法(获取行的范围,边界,行的起源等)来计算链接的边界矩形。一旦我对链接的每一行都有一个矩形,我在重新绘制其上方的文本之前将背景绘制到上下文中。
看起来像很多工作,但它确实有效。
答案 1 :(得分:1)
使用iOS 6,我认为您可以通过以下方式获得所需的效果:NSBackgroundColorAttributeName。如:
[attributedString addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:selectedRange];