我正在尝试在 iPhone 上绘制布局丰富的 TextView ,其特点是:
- 自定义段落间距(
kCTParagraphStyleSpecifierParagraphSpacing
) - 自定义段落首行缩进(
kCTParagraphStyleSpecifierFirstLineHeadIndent
) - 对齐(
kCTParagraphStyleSpecifierAlignment
) - 最后,一个 drop cap在我的第一段
我正在使用 OHAttributedLabel
.通过在我的 NSAttributedString
上设置一些段落样式属性,我轻松实现了前三点。
我通过破解 OHAttributedLabel
设法实现的首字下沉:
- 通过添加额外的
CGPathAddRect
,从主段落的CGMutablePathRef
大小的首字下切出一个矩形区域,详见 this excellent blog post。 . - 使用额外的
CTFrameDraw
调用在该区域绘制大字符。
我的问题:段落样式和自定义文本路径不兼容。当我从正文路径中剪切出一个矩形 block 时,所有段落样式似乎都被丢弃了。
有谁知道让他们一起工作的方法吗?或者谁能想到另一种实现首字下沉的方法? (除了使用 UIWebView
+ CSS,我宁愿没有开销!)
谢谢!
最佳答案
您可以直接使用 Core Text 来实现这一点,在下面的帖子中,我将解释如何使用 2 个框架 setter 在 UIView 中使用首字下沉布局文本。在代码示例中(还有一个指向 github 存储库的链接),您将能够看到段落样式的创建位置和应用于主 TextView 的位置。
关于ios - 核心文本 : Drop caps + paragraph styles: Incompatible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033514/