ios的mkmapview在zoom时内存会暴涨,并且降不下来。
我在网上搜了很多,也尝试了很多解决方案,比如切换地图显示模式(MKMapType)、不用时释放掉地图。但是并没有明显的解决缩放时的内存问题。
阿神2017-04-17 17:28:18
このメモリは数十メガバイトまで増加しますが、これは正常です。
Mapview は、レンダリング速度を高めるために、tiledLayer (タイル化されたレイヤー) を使用します。マップ タイルはメモリにキャッシュされます。
ズームすると、マップ タイルがさまざまなレベルでキャッシュされます。
メモリが不足している場合は、MKMapView が自動的にキャッシュをクリアしてくれると思いますので、この問題について心配する必要はないと思います。
追記:1 これは stackoverflow によって与えられた解決策ですが、理由が本当にわかりません。
リーリー追記:
個人的には
の方が好きです リーリーviewDidDischaracter メソッドでマップを解放し、必要に応じて再初期化します。
ringa_lee2017-04-17 17:28:18
見つかった解決策:
mapviewのregionDidChangeメソッドでは、map.zoomLevelが一定範囲未満であると判断し、mapTypeを代替します
これにより、メモリのピークを効果的に削減できます。
マップが特定の範囲に縮小されると、メモリを節約するためにマップ上の店舗などの詳細がクリアされるはずだからです。
PHP中文网2017-04-17 17:28:18
mapviewのregionDidChangeメソッドでは、map.zoomLevelが一定範囲未満であると判断し、mapTypeを代替します
これにより、メモリのピークを効果的に削減できます。
それはどのように行われますか? ? ? ? ? MapView にはzoomLevel 属性がありますか? ? ?