マップキットは、注釈ビューでこれをサポートするのと同じ方法でオーバーレイの再利用をサポートしていません。この理由の1つは、確かに2つのオブジェクトが類似していないことです。オーバーレイはマップ上の領域を表すモデルオブジェクトですが、注釈ビューは時折マップに注釈の位置を表示するために使用されるビューオブジェクトです。ビューオブジェクトを再利用するテクニックは、UIKitの他の場所、特にTable Viewセルやさまざまなコレクションビューのビットマップで使用される最適化です。
ビューの再利用パターンは、いくつかのデータインデックス(テーブルインデックスパス、マップ座標)を確立し、特定のインデックス/ロケーションが表示されるときに使用する適切なビューオブジェクトをデリゲートに提供することです。データオブジェクトが視界を抜けると、ビューオブジェクトはキューにリサイクルされます。
注釈はオーバーレイに似ており、MapKitは理由もあり再利用できません。表示されているデータです。
注釈ビューと同様のオブジェクトはオーバーレイレンダラーで、オーバーレイのレンダリングを提供します(もちろん!)。私は、これらが再利用されない理由は、ビューシステムオブジェクトではなく、おそらくはるかに軽量であるため、再利用のメリットがほとんどないからです。 iOS 7.0まで、MapViewデリゲートはにオーバーレイ用のビューオブジェクトを提供しましたが、これはレンダラのコンセプトに置き換えられました。
私は役立つことを願っています。
これが原因ですか?
PS。また、人々が実際に(これが問題であれば)マップ上にオーバーレイを「注釈」として配置するかどうか、これを回避するには?オーバーレイの一部がオフスクリーンである可能性があるため、おそらく大きなオーバーレイでは機能しませんでした。 – Greg
PSS。実際には全国に8000程度のオーバレイがありますので、最終的にはそれらをすべて前もって読み込んでいますか、手動で管理する必要がありますか?すなわち目に見えるもの – Greg