ios - UIBezierPath - 你可以 "clip"一个吗?

标签 ios uibezierpath

假设您已经构建了一个 UIBez:

enter image description here

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

enter image description here

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

enter image description here

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

iOS 工具包是否包含这种用于 UIBezierPath 构建的功能?

我认为答案是“否”,但这是不可能通过谷歌搜索的事情之一,因为,你会得到不相关的质量检查。所以我找不到答案。

请注意 - 这与简单地“添加一个洞”完全不同,就像人们使用 .append 所做的那样(例如 https://stackoverflow.com/a/57514286/294884 )

最佳答案

没有内置的路径剪辑(并且绝对没有自动关闭剪辑路径)。


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

enter image description here

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

但是,如果您的路径由一系列线段组成,理论上您可以编写自己的例程来迭代这些线段,寻找与矩形剪切蒙版的交点(以及检测它们是否包含在剪切蒙版中)根本没有面具)。如果您搜索“UIBezierPath intersection ”,你会看到一些相关的例子。即使如此,您也会遇到关于如何通过算法关闭路径的有趣的边缘情况。

关于ios - UIBezierPath - 你可以 "clip"一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148691/

相关文章:

ios - TabBarItem 上的角标(Badge)

ios - UITableViewCell subview 在 iOS7 中仅返回 UITableViewCellScrollView

ios - 如何在 SwiftUI 中基于绑定(bind)枚举更改 View 的样式?

ios - UIBezierPath 的快速替代品,用于将大量正方形绘制到自定义 View

ios - UIBezierPath 未按预期更新

iOS : Animate transformation from a line to a bezier curve

ios - 适当的 AutoresizingMask

objective-c - IOS - 加载未知类型的 UIViewController

ios - 极坐标点生成函数上界不是2Pi for theta吗?

ios - UIImage 的 UIBezierPath