Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIBezierPath-你能;夹;一个?_Ios_Uibezierpath - Fatal编程技术网

Ios UIBezierPath-你能;夹;一个?

Ios UIBezierPath-你能;夹;一个?,ios,uibezierpath,Ios,Uibezierpath,假设您有一个已构建的UIBez: 现在我想“剪辑”它,也许用这个矩形: 因此,在本例中,我想要的最终路径是: (或者,在本例中,您可以“减去”右侧的矩形和底部的矩形。) iOS工具包是否包含此UIBezierPath构建功能 我认为答案是“不”,但这是谷歌不可能做到的事情之一,因为,你会得到无关的QA。所以我找不到答案 请注意-这与使用简单地“添加一个孔”完全不同。append(示例)没有内置的路径剪辑(当然也没有自动关闭剪辑的路径) 除了您提到的“添加孔”技术之外,另一种方法就是屏蔽/

假设您有一个已构建的UIBez:

现在我想“剪辑”它,也许用这个矩形:

因此,在本例中,我想要的最终路径是:

(或者,在本例中,您可以“减去”右侧的矩形和底部的矩形。)

iOS工具包是否包含此UIBezierPath构建功能

我认为答案是“不”,但这是谷歌不可能做到的事情之一,因为,你会得到无关的QA。所以我找不到答案


请注意-这与使用
简单地“添加一个孔”完全不同。append
(示例)

没有内置的路径剪辑(当然也没有自动关闭剪辑的路径)


除了您提到的“添加孔”技术之外,另一种方法就是屏蔽/剪裁它。我知道你知道这一点,但为了将来的读者,内置剪辑/遮罩仅在图形上下文中可用(或
CALayer
mask
)。例如,如果您有一个
CAShapeLayer
,您可以将其
掩码设置为
(例如,设置为下面虚线矩形所示的矩形):

显然,这种方法无法“关闭”已剪裁的路径


但是,如果您的路径由一系列线段组成,理论上您可以编写自己的例程来迭代这些线段,以查找与矩形剪裁遮罩的交点(以及检测它们是否包含在剪裁遮罩中)。如果搜索“”,您将看到一些相关示例。即使这样,关于如何通过算法关闭路径,您也会遇到一些有趣的边缘情况。

没有内置的路径剪裁(当然也没有自动关闭剪裁的路径)。内置剪裁/遮罩仅在图形上下文或
遮罩
级别可用。如果您的路径由一系列线段组成,理论上您可以编写自己的例程来迭代这些线段,并使用矩形剪裁遮罩寻找交点。如果你搜索,你会看到一些相关的例子。即使这样,关于如何关闭路径,您也会遇到一些有趣的边缘案例。@Rob“没有内置的路径剪辑(当然也没有自动关闭剪辑的路径)”太棒了-那就是事实了!说吧,你肯定应该给出一个答案,这样它对于任何想知道这个的人来说都是标准的。再次感谢。顺便说一句,你不能屏蔽一层两次(或更多次),除非我误解了什么。看起来你必须“去UIView”为了实现这一点,我们需要使用多个组合的UIView,而不是在一个UIView中进行操作。