Uiview 屏蔽视图,使其仅显示在闭合的贝塞尔路径之外

Uiview 屏蔽视图,使其仅显示在闭合的贝塞尔路径之外,uiview,mask,uibezierpath,Uiview,Mask,Uibezierpath,我有一个封闭的贝塞尔路径。它当前以正常方式屏蔽UIView,这意味着只有路径边界内的视图部分可见。我现在已经决定了一个美学特性,如果有一种方法可以使用相同的贝塞尔路径进行反遮罩,它将非常容易实现。我的意思是,现在我想要一个不同的UIView,它当前在路径外部完全可见,一旦它与贝塞尔路径相交,它就会被切断。有没有办法将另一个UIView的遮罩设置为Bezier路径的倒数?假设必须遮罩的视图实例为遮罩DVIEWMVIEW-红色。 让我们假设有一个背景视图bView-绿色,在这个遮罩视图下面。 如果只

我有一个封闭的贝塞尔路径。它当前以正常方式屏蔽UIView,这意味着只有路径边界内的视图部分可见。我现在已经决定了一个美学特性,如果有一种方法可以使用相同的贝塞尔路径进行反遮罩,它将非常容易实现。我的意思是,现在我想要一个不同的UIView,它当前在路径外部完全可见,一旦它与贝塞尔路径相交,它就会被切断。有没有办法将另一个UIView的遮罩设置为Bezier路径的倒数?

假设必须遮罩的视图实例为遮罩DVIEWMVIEW-红色。 让我们假设有一个背景视图bView-绿色,在这个遮罩视图下面。 如果只是遮罩视图,则遮罩视图路径内部的区域将可见,路径外部的区域将填充背景视图

所以,我们说mView是蒙面的,而bview是背景。另一种说法是bview是正面的,而mView是反蒙面的,而bview是在bview的下方。即使我们将mask应用于mView,屏幕仍会显示bView是反屏蔽的

因此,我们创建了这样一种错觉,以防遮挡视图

程序说明: 视图1-反遮罩此视图图像的绿色视图 视图2-背景视图图像的红色视图


希望这能有所帮助。

您想要一个只显示路径外部而不显示路径内部的部分的视图吗
*[self.view addSubview:view1];
*[self.view insertSubview:view2 aboveSubview:view1];
//now view2 is top of view1
*apply bezier path to view2 not view1.