假设您拥有已构建的UIBez:
现在,我想“剪切”它,也许用这个矩形:
所以在该示例中,我想要的最终路径是:
(或者在示例中,您可以在右侧“减去”一个矩形,在底部一个“减去”矩形)。
iOS工具包是否包括用于UIBezierPath构建的功能?
我认为答案是“否”,但这是Google不可能做到的事情之一,因为您获得了不相关的质量检查。所以我找不到答案。
请注意-这完全不同于简单地“添加孔”,就像使用.append
(例如https://stackoverflow.com/a/57514286/294884的例子)一样
答案 0 :(得分:1)
没有内置的路径剪切(也绝对没有自动关闭剪切路径)。
除了您提到的“添加孔”技术外,另一种方法是将其蒙版/剪切。而且我知道您知道这一点,但是为了将来的读者,内置的剪切/遮罩仅在图形上下文(或mask
的{{1}})中可用。例如,如果您有CALayer
,则可以设置其CAShapeLayer
(例如,设置为下面的虚线矩形所示的矩形):
显然,这种方法无法“关闭”已剪切的路径。
但是,如果您的路径由一系列线段组成,则理论上您可以编写自己的例程来遍历这些线段,以查找与矩形剪贴蒙版的交集(以及检测剪贴是否包含它们)面具)。如果搜索“ UIBezierPath intersection”,将看到一些相关示例。即便如此,您也会遇到一些有趣的极端情况,例如如何以算法方式关闭路径。