ios - 核心文本 : Drop caps + paragraph styles: Incompatible?

标签 ios core-text

我正在尝试在 iPhone 上绘制布局丰富的 TextView ,其特点是:

  1. 自定义段落间距(kCTParagraphStyleSpecifierParagraphSpacing)
  2. 自定义段落首行缩进(kCTParagraphStyleSpecifierFirstLineHeadIndent)
  3. 对齐(kCTParagraphStyleSpecifierAlignment)
  4. 最后,一个 drop cap在我的第一段

我正在使用 OHAttributedLabel .通过在我的 NSAttributedString 上设置一些段落样式属性,我轻松实现了前三点。

我通过破解 OHAttributedLabel 设法实现的首字下沉:

  1. 通过添加额外的 CGPathAddRect,从主段落的 CGMutablePathRef 大小的首字下切出一个矩形区域,详见 this excellent blog post。 .
  2. 使用额外的 CTFrameDraw 调用在该区域绘制大字符。

我的问题:段落样式和自定义文本路径不兼容。当我从正文路径中剪切出一个矩形 block 时,所有段落样式似乎都被丢弃了

有谁知道让他们一起工作的方法吗?或者谁能​​想到另一种实现首字下沉的方法? (除了使用 UIWebView + CSS,我宁愿没有开销!)

谢谢!

最佳答案

您可以直接使用 Core Text 来实现这一点,在下面的帖子中,我将解释如何使用 2 个框架 setter 在 UIView 中使用首字下沉布局文本。在代码示例中(还有一个指向 github 存储库的链接),您将能够看到段落样式的创建位置和应用于主 TextView 的位置。

https://stackoverflow.com/a/14639864/1218605

关于ios - 核心文本 : Drop caps + paragraph styles: Incompatible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033514/

相关文章:

ios - 在 iOS 中使用 Storyboard View 中的模糊背景

ios - ios 中的 Ruby 文本/注音假名

ios - CATextLayer 中的 NSAttributedString 导致 EXC_BAD_ACCESS (ios 5.0)

ios - Cocoa 应用程序中的核心文本

ios - UITableviewCell 内容中的核心文本重叠、重复并叠加在其他单元格上

iphone - 如何在没有 uitableview 的情况下创建基于导航的应用程序

objective-c - 以编程方式居中 UIButton

ios - Swift Azure Mobile 快速入门 - 添加和同步 PNG 图像

iphone - 通过代码更改选定的 TabBarItem?

iphone - Core Text - 小框文本太多 - 如何添加三个点?