我已将UIView
子类化,并为其添加了drawRect
方法。然后我使用此自定义类定义视图并向其添加子视图。
问题是drawRect
似乎在子视图下绘制内容(因此不可见)。
我希望drawRect
绘制的内容显示在我的自定义UIView
的子视图上方。
这可能吗?
答案 0 :(得分:28)
子视图将始终显示在其超级视图的“顶部”。
根据您的具体要求,您可能需要使用简单的UIView作为背景/容器视图,并在其中显示现有的子视图,然后将自定义视图作为另一个子视图添加到最顶层,因此它具有最高Z顺序。
例如,如果您的自定义视图是应该位于其他所有内容之上的网格覆盖,那么这将起作用。自定义视图必须是非透明的,背景颜色清晰。
答案 1 :(得分:10)
不,子视图始终显示在其容器上方。当然,没有什么可以阻止你使子视图(部分)透明。
如果要在上面绘制,请将另一个透明子视图作为最顶层的子视图放入容器中,然后绘制该子视图。如果您禁用用户互动,则不会干扰您的触摸处理。