隐藏超视图而不隐藏其子视图

时间:2010-11-19 16:13:07

标签: iphone mkmapview hidden subview superview

一般来说我知道有相关的解决方法,但iOS SDK中是否有任何简单的方法可以隐藏超视图而不隐藏其子视图?

我有一个父视图,它是一些其他视图的背景。我想通过将透明度设置为0或设置“隐藏”或其他东西来隐藏父级 - 问题是这些更改会影响父级的所有子视图。

同样,我意识到通常有一种解决方法,但在这种情况下,我正在处理mapView,我的子视图是注释和叠加。

谢谢,-Matt

2 个答案:

答案 0 :(得分:1)

<强>更新

是的,MKMapView中会有多个渲染层,因此设置backgroundColor不会起作用。您可以尝试继承MKMapView以添加属性以打开/关闭这些图层(通过删除/重新添加到视图中。)但这似乎非常危险。

您可以尝试将MKMApView的“clipsSubviews”设置为NO / FALSE,并将帧重置为0,0,0,0。但这会影响您将Touch事件发送到子视图的能力。

重新评估您的视图层次结构可能是更好的解决方案。做到这样:

main-view
  map-view
  transparent-view
    control-1
    control-2
    etc.

<强>原始

将backgroundColor设置为[UIColor clearColor]

答案 1 :(得分:0)

您可以将超级视图的backgroundColor属性设置为.clear,这对子视图的外观没有影响。

superView.backgroundColor = .clear