2010-11-19 17 views
1

一般的に私は回避策があると知っていますが、サブビューを隠さずにスーパービューを非表示にする簡単な方法はありますか?サブビューを隠さずにスーパービューを非表示にする

私は他のいくつかのビューの背景となる親ビューを持っています。私は透明度を0に設定するか、または「隠し」を設定するかのいずれかで親を非表示にしたいと思います。これらの変更は親のすべてのサブビューに影響します。

また、通常、この問題を回避する方法があることを認識していますが、この場合はmapViewを扱い、サブビューは注釈とオーバーレイです。

おかげで、-Matt

答えて

1

更新

はい、MKMapViewはそうbackgroundColorの文句を言わない仕事を設定し、レンダリングとそれにいくつかの層を持つことになります。 MKMapViewをサブクラス化して、これらのレイヤーをオン/オフに切り替えるためのプロパティを追加することができます(ビューを削除/再追加することによって)。これはかなり危険です。

MKMApViewの "clipsSubviews"をNO/FALSEに設定し、フレームを0,0,0,0にリセットすることができます。しかし、これはあなたのサブビューにタッチイベントを取得するあなたの能力に影響を与えます。

ビュー階層を再評価する方がよいでしょう。それは何かのように行います:へのbackgroundColorを設定し

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

オリジナル

[UIColor clearColor]

+0

私はより明確にする必要がありますね - この特定の状況では、親ビューとしてMKMapViewを扱っています。背景色をクリアするように設定することはできません。実際には何も起こりません:( – mag725

+0

私は私の答えを更新します。 – TomSwift

関連する問題