0

UIWebView オブジェクトをカスタム UIView ( TSAlertView ) に実装しました。私の UIWebView は、サブビューとして UIView の真ん中にあります。

iOS デバイスの画面を回転すると、UIWebView オブジェクトは古いものを削除せずに、古いものの上に再描画されます。画面が回転すると、このカスタム UIView の他のすべての要素が破棄され、再描画されます。

リソースの割り当てを解除したり、ビューから UIWebView を削除したりするための何らかの手順を見逃していたに違いないと思います。UIWebView の宣言に「autorelease」を追加しようとしましたが、役に立ちませんでした。これは、UIWebView の作成方法で行った単純な見落としの一般的な症状でしょうか?

これは、回転するたびに再描画される前に UIWebView オブジェクトを破棄するように指示しない単純なケースのようですが、これについてどうすればよいかわかりません...

どんな知恵もありがたく受け取った。

4

1 に答える 1

0

理想的には、回転中にビューを再度作成しないでください。代わりに、デリゲートのフレームを適切に再配置できます。あなたの場合、UIWebViewもう一度作成している可能性がありますが、これは避けるべきです。その代わりに、クラス レベルのパラメーター (.h ファイルで宣言) として保持し、デリゲート メソッドでフレームを調整して回転させることができます。release/autoreleaseまた、スーパービューからビューを削除しないことに注意してください。removeFromSuperviewそれを実現するには、メソッドを呼び出す必要があります。

ビューのサイズ変更とレイアウト処理については、これを確認してください

于 2012-10-24T23:07:32.353 に答える