drawRect在子视图之上

时间:2011-10-08 06:09:40

标签: ios core-graphics drawrect z-order

我已将UIView子类化,并为其添加了drawRect方法。然后我使用此自定义类定义视图并向其添加子视图。

问题是drawRect似乎在子视图下绘制内容(因此不可见)。

我希望drawRect绘制的内容显示在我的自定义UIView的子视图上方。

这可能吗?

2 个答案:

答案 0 :(得分:28)

子视图将始终显示在其超级视图的“顶部”。

根据您的具体要求,您可能需要使用简单的UIView作为背景/容器视图,并在其中显示现有的子视图,然后将自定义视图作为另一个子视图添加到最顶层,因此它具有最高Z顺序。

例如,如果您的自定义视图是应该位于其他所有内容之上的网格覆盖,那么这将起作用。自定义视图必须是非透明的,背景颜色清晰。

答案 1 :(得分:10)

不,子视图始终显示在其容器上方。当然,没有什么可以阻止你使子视图(部分)透明。

如果要在上面绘制,请将另一个透明子视图作为最顶层的子视图放入容器中,然后绘制该子视图。如果您禁用用户互动,则不会干扰您的触摸处理。