3

一般に、これには回避策があることはわかっていますが、iOS SDK でサブビューを非表示にせずにスーパービューを非表示にする簡単な方法はありますか?

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

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

ありがとう -マット

4

2 に答える 2

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] に設定します。

于 2010-11-19T16:16:46.103 に答える