在工作中,我被任命为这项看似简单的任务,即在我们的iOS应用程序中将“四舍五入的高光”应用到计算出的少量文本中。 简单吧? 事实证明,这比看上去要难,持续了一周的时间仅完成了66.67%。
我当时正跳入一个更大的项目的中间,这使它立即变得混乱。 我必须四处研究,研究应用程序中的所有内容如何相互连接,破坏事物。 研究特定于我们应用程序的新事物,并研究Swift定义的新事物。 JP告诉我应该去哪里看确实有帮助。 这是我遇到的一些事情:
- NSAttributedString —这就是JP所说的,我需要使用它才能从上方更改文本的外观。
- NSMutableAttributedString
- UILabel的
attributedText属性 - NSAttributedStringKey —“ 可以应用于属性字符串中文本的属性。”
基本上,我能够将NSAttributedStringKey.backgroundColor:和NSAttributedStringKey.font:更改为所需的颜色和粗体字体。 这并不太难,但是高光仍然只是一个没有圆角的矩形。
快过去了一个星期的StackOverflow-ing和Google-ing模糊处理后,我仍然一无所获。 有人在StackOverflow上遇到了类似的问题 因此,我尝试在线程中的建议解决方案中重新创建步骤。 CTFramesetter? CTLine? CGPathRef? CTLineGetGlyphRuns? 什么? 更多新事物!!! 我是如此的困惑和失败。 但是,在我看过的解决方案之前 ,在相同的解决方案响应中,用户建议:
对于后续步骤,您需要对
CoreText如何完成工作有基本的了解。 查看Apple的《核心文本编程指南》以了解什么是框架/线条/字形运行/字形等。
咄。 我为什么不从那里开始呢?
因此,我开始阅读指南,并尝试重新创建一个给定的示例:在我自己的练习应用中排版一个简单的段落 。
不幸的是,整个示例都在Objective-C中进行,但是我在寻找与文档中所有内容都等效的Swift上很开心。