0

私のアプリは2つの画面(メインと設定)で構成され、両方ともスクロールビューで完全に満たされています。それぞれに 1 つのビュー コントローラーがあり、横向きと縦向きをサポートするはずです。私はそれを達成するためにオートサイジングを使用しており、かなりうまく機能します(すべての要素が本来あるべき場所にあり、サイズも正しいです)が、画面が回転すると奇妙なアーティファクトが発生します。たとえば、実際の「ドラム" 内の領域は適切にサイズ変更され、テキスト フィールドは背景によって部分的にオーバーラップされ、横向きのグラフはそのまま残り、縦向きのグラフが重なっています。

すべては変更のない基本的な要素であり、画像や特別なものはありません (グラフは例外で​​す。didRotateFromInterfaceOrientation: で再読み込みしています)。なぜそれが起こるのか、基本的な要素が適切に再描画されないのはなぜですか?

4

1 に答える 1

0

結局自分で考えました。どうやらiOS自体がそれを行うことができないため、回避策を実装する必要がありました。

1) ビューの自動サイズ変更後のアーティファクト。ここでの解決策は、方向を変更する前にビューを非表示にし、グラフをリロードして、方向が変更された後に再度表示することでした。見た目は完璧ではありませんが、以前よりははるかに良くなっています。

2) その他の問題はピッカービューが原因でした。自動サイズ変更は明らかにまったく機能しません。ここでの解決策は、問題なくサイズ変更されるピッカーの代わりに UIView を作成し、向きが変わるたびにピッカービューを再作成することでした。

于 2012-10-16T09:38:20.793 に答える