ここに私の問題のコンテキストがあります.... ARCがオンになっているiPhoneアプリのターゲットとしてiOS 5を使用しています:
を持つアプリがありUINavigationController
ます。スタックには、一番上にプッシュされる複数のビューがあります。表示される最後のビューは、UIWebView
Google 画像を使用した Web サイトであり、ユーザーは画像を選択してUIImageView
、ナビゲーション スタックの前のビューに戻すことができます。ユーザーは [戻る] を押してから、前のビューで [保存]UIBarButton
を押して、画像をデバイスにローカルに保存できます。スタックは次のようになります。
MainView -> DetailsView
UIBarButton
(右上に保存あり) -> ImageDisplayView -> WebView (Google 画像 Web サイトが読み込まれている)
問題は、ユーザーが Google 画像モバイルの [View Full Image] ボタンを使用して Google 画像から大きな画像 (たとえば 5 MB の画像) を選択すると、メモリ警告がスローされ、その下のビューが解放されることです。そのため、ユーザーが [保存] ボタンを使用して DetailsView に戻ると、[保存] ボタンはなくなりました。と呼ばれているからdidReceiveMemoryWarning
です。
だから私の質問は....
埋め込まれた UIWebView で 5MB の画像を表示するときにメモリ警告が呼び出されるのはなぜですか?
メモリの警告が原因で問題 (UIBarButton ビューのドロップなど) がナビゲーション スタックの下部に発生しないようにするにはどうすればよいですか?
iPhone アプリ内の Google 画像モバイルからフルサイズの画像を適切に取得するためのヒントやコツはありますか?
この問題を自分で試すUIWebView
には、空白のアプリを作成し、Google 画像 Web サイトをそのアプリにロードします。それをデバイスにインストールし (3GS 以下では問題の発生が早くなります)、完全な画像をブラウザにロードしたり、ブラウザからロードしたりするだけで、最終的にデバッグ コンソールに警告が表示されます。