2014-10-02 43 views
1

我有一个mainView,在这里我正在绘制让我们在后台说一张图片。 mainView也有3 subviews,它们可以相互拖拽。 subviews是正方形,clearColor背景和redColor帧。问题是如果一个视图被拖到第二个视图上,我可以在第一个视图的下面看到第二个视图。我想删除它(只有部分重叠),但不知道如何去做。我在下面的截图中介绍它。擦除子视图的一部分

在左边有目前的情况,在右边 - 所需的一个。是否有可能删除子视图的一部分..? image

回答

0

这样很自定义效果有时更容易在一个视图中的-drawRect的方法做,否则这部分擦除需要接壤RECT了解其他视图。绘制底部矩形的边框,然后擦除顶部矩形,然后绘制顶部矩形的边框。您也可以使用多个CGLayers进行混合,以获得类似的效果,并且抽象化一些。

+0

我简化了整个想法,实际上这些子视图相当复杂,一切都在'drawRect'中绘制。我不想将它合并到一个视图,因为它会变得非常混乱。这就是为什么我要问擦除子视图。不过,谢谢你的答案。 – Vive 2014-10-02 13:43:18

+0

然后您的视图可以知道每个其他视图,并使用drawRect擦除其上方的每个其他视图的区域,并将其转换为局部坐标。 – 2014-10-03 11:40:24

0

如果你有一个清晰的背景色,这是透明的,这就是为什么你的视图正在窥视。将其更改为[UIColor whiteColor]。

+0

但我写过这个问题,我的背景有一个渐变。我不想要任何白色叠加,也不需要任何Alpha值。有了这样的想法,我宁愿使用子视图来窥视它们,而不是让它们变成白色。这不是一个解决方案,但绕过它没有修复。 – Vive 2014-10-02 15:37:54