我经常被问到如何使用路径的边缘。 通常这是在测试触摸Bezier路径的上下文中,但有时开发人员只是想知道如何在一个路径的边缘添加特殊效果。 有一个奇怪的Core Graphics小函数称为CGPathCreateCopyByStrokingPath()
。 它构建一个具有指定宽度的路径,围绕给定贝塞尔路径的边缘形成的。
代码清单6-6使用这个函数来剪切普通描边区域周围的路径。 你提供宽度; 它构建和剪切边缘路径。 一旦剪切,你可以在你的上下文中绘制一个渐变。 这产生了您在图6-14中看到的效果。 在左侧图像中,路径用渐变填充。 在右图像中,在原始路径上stroked(描边)的虚线图案突出显示了新路径的构建方式。
图6-14使用Quartz的渐变描边路径。 左:描边图像。 右:显示原始路径的同一图像。
对于触摸,您可以使用CGPathContainsPoint()
来测试该路径的描边版本是否包含触点。
代码6-6剪切路径到它的描边
1 | - (void) clipToStroke:(NSUInteger)width |
本文翻译自《iOS Drawing Practical UIKit Solutions》作者:Erica Sadun,翻译:Cheng Dong。如果觉得本书不错请购买支持正版:亚马逊购买传送门,本书所有源代码可在GitHub上下载。译者虽然力求做到信,达,雅,但是由于时间仓促加之译者水平十分有限,文中难免会出现不正确,不准确,词不达意,难于理解的地方,还望各位批评指正,共同进步,谢谢。转载请注明出处。