Core Text简化了将字符串转换为Bezier路径的过程。代码清单4-7提供了一个简单的转换函数。它将其字符串转换为单个Core Text字形,表示为单个CGPath
项。该函数将每个字母路径添加到生成的Bezier路径中,在每个字母后面按该字母的大小进行偏移。
添加所有字母后,路径将垂直镜像。这会将面向Quartz的输出转换为适合UIKit的布局。你可以像任何其他人一样处理这些字符串路径,设置它们的线宽,用颜色和图案填充它们,并且根据你喜欢的样子来变换它们。 图4-9显示了一个从粗体Baskerville字体创建并填充有绿色图案的路径。
图4-9这是一个填充和描边的Bezier路径,由清单4-7从NSString
实例创建。
以下是创建该路径的代码段:
1 | UIFont *font = [UIFont fontWithName:@"Baskerville-Bold" size:16]; |
有趣的是,字体大小在这个特定的图形中不起作用。路径按比例缩放到目标矩形,因此您可以使用几乎任何字体来创建源。
如果你想让路径看起来像正常的排版文字,只需使用黑色填充颜色填充返回的路径。这个绿色填充的示例使用内部描边,以确保类型路径的边缘保持清晰。
清单4-7 从字符串创建贝塞尔路径
1 | UIBezierPath *BezierPathFromString( |
本文翻译自《iOS Drawing Practical UIKit Solutions》作者:Erica Sadun,翻译:Cheng Dong。如果觉得本书不错请购买支持正版:亚马逊购买传送门,本书所有源代码可在GitHub上下载。译者虽然力求做到信,达,雅,但是由于时间仓促加之译者水平十分有限,文中难免会出现不正确,不准确,词不达意,难于理解的地方,还望各位批评指正,共同进步,谢谢。转载请注明出处。