Ios 如何在带有切割层的圆上添加圆?

Ios 如何在带有切割层的圆上添加圆?,ios,uiview,uikit,subclass,geometry,Ios,Uiview,Uikit,Subclass,Geometry,我的意思是,我有一个大圆圈和一个小圆圈的自定义视图。但我怎样才能切下一个大圆圈的角(层)?背景是来自父视图,而不是来自具有清晰颜色的自定义视图 图标、名称标签和标签通知我已添加到自定义视图中。所以,两个相交的圆仍然存在问题。我在上面的评论中提出了三种方法。这是其中一个的演示。请注意,我并没有真正做数学运算,也没有尝试近似您的绘图:这只是一个原理的演示: 这实际上是三个圆圈: 左下角的大中心圆(绿色) 较大的角圆,用于“擦除”第一个圆的右上角 第二个较小的角圆(绿色)位于左上角 以下是生成

我的意思是,我有一个大圆圈和一个小圆圈的自定义视图。但我怎样才能切下一个大圆圈的角(层)?背景是来自父视图,而不是来自具有清晰颜色的自定义视图


图标、名称标签和标签通知我已添加到自定义视图中。所以,两个相交的圆仍然存在问题。

我在上面的评论中提出了三种方法。这是其中一个的演示。请注意,我并没有真正做数学运算,也没有尝试近似您的绘图:这只是一个原理的演示:

这实际上是三个圆圈:

  • 左下角的大中心圆(绿色)

  • 较大的角圆,用于“擦除”第一个圆的右上角

  • 第二个较小的角圆(绿色)位于左上角

以下是生成该图形的代码(忽略数字;这是重要的原则):


虽然您可以通过使用来实现此效果,但一个更简单的解决方案可能是为较小的圆指定一个笔划(与您的背景颜色相匹配)并将其置于前面。“图标、名称标签和标签通知已添加到我的自定义视图中。”这在很大程度上取决于您的操作方式。但基本上这不是一个图层问题。这只是一个绘画问题。在拐角处,在中心圆前面画一个较大的白色圆圈;然后画一个小的绿色圆圈或者,在绘制中心圆时,使用较大的角圆作为剪切区域。或者,在绘制较小的角圆之前,使用清晰混合模式“擦除”较大的角圆。是的!正是我需要的。我有一个问题:)所以,我用drawRect方法画这些圆,但我如何在下一步中传递我的颜色或访问大小圆。我需要他们每个人的动画。。。
CGContextSetFillColorWithColor(con, UIColor.greenColor().CGColor)
CGContextFillEllipseInRect(con, CGRectMake(0,rect.height-130-10,130,130))

CGContextSetFillColorWithColor(con, UIColor.clearColor().CGColor)
CGContextSetBlendMode(con, kCGBlendModeClear) // erase
CGContextFillEllipseInRect(con, CGRectMake(rect.width-65, -5, 70, 70))

CGContextSetFillColorWithColor(con, UIColor.greenColor().CGColor)
CGContextSetBlendMode(con, kCGBlendModeNormal)
CGContextFillEllipseInRect(con, CGRectMake(rect.width-53,3,50,50))