垂直スクロールのみが有効になっている UIScrollView があります。ボタンのグリッドを表示しています (フォト ビューアーの画像グリッドに似ています)。すべての画面領域が使用されるように、グリッドは画面の向きに基づいて異なる方法で描画する必要があります。ボタンのサイズを考えると、縦向きでは 1 行あたり 3 つ、横向きでは 1 行あたり 4 つ収まります。
すべてのボタンを willRotateToInterfaceOrientation:duration に再配置してから、UIScrollView で setContentSize: を呼び出します。SetContentSize: の呼び出し後に発生する自動スクロールを除いて、すべてが正常に機能しているようです。言い換えれば、私が縦向きで、リストの 3/4 までスクロールしたとしましょう。横向きに回転すると、一番上まで自動スクロールします。
興味深いことに、同じシナリオで、上または下に小さなフリック スクロールを行い、すぐにデバイスを回転させると、スクロール ビューが正しく再描画され、現在のスクロール位置が保持されます。
したがって、明確にするために、ここでの犯人は SetContentSize: のようですが、明らかに、スクロール ビューを正しくスクロールするにはそれを呼び出す必要があります。
現在のスクロール位置を保持する方法についてのアイデアはありますか?
ありがとう!