UIKit框架使得可以轻松地将虚线添加到Bezier路径。例如,您可以添加一个简单的重复模式,如下所示:
1 | CGFloat dashes[] = {6, 2}; |
数组以点为单位指定绘制描边时使用的开/关模式。此示例绘制6个点的线,后跟2个点的空格。你的虚线模式自然会随着绘图上下文的缩放比例和视图使用的任何压缩而变化。也就是说,有很多方法来处理虚线。表4-1列出了一些基本选项。
虚线的相位(phase)表示其从图形的开始偏移的量。在该示例中,整个图案为8点长。从0到7迭代地移动相位使您能够为虚线设置动画,从而创建围绕Bezier路径的行军蚁的效果。您将在第7章中了解如何实现此效果。
效果图 | 解释 |
---|---|
路径默认为实线,不带虚线。 | |
使用(1,1)虚线创建点状图案。 | |
增加虚线和空格的大小会延长重复模式。此笔划使用(2,2)虚线。 | |
此路径使用(6,2)描边。这提供了适合大多数开发人员需要的虚线图案。 | |
当您将路径增加到(12,2)时,虽然路径仍然明显是虚线,但空格变得不那么明显。 | |
交替的长和短虚线为另一个虚线样式。此模式使用(8,2,4,2)描边。 | |
此模式可能更复杂。此模式使用(8,2,4,2,4,2)描边。它结合一个长虚线和两个短虚线。 | |
此路径使用相同的方法,但减少每个项目的大小。结果是点线混合,使用(6,1,1,1,1,1)进行描边。 | |
该最终模式使用(2,4,1,8,1,4,1,2,1)描边。线条伸展和减少2的幂个点。 |
本文翻译自《iOS Drawing Practical UIKit Solutions》作者:Erica Sadun,翻译:Cheng Dong。如果觉得本书不错请购买支持正版:亚马逊购买传送门,本书所有源代码可在GitHub上下载。译者虽然力求做到信,达,雅,但是由于时间仓促加之译者水平十分有限,文中难免会出现不正确,不准确,词不达意,难于理解的地方,还望各位批评指正,共同进步,谢谢。转载请注明出处。