スクロールビューを最初にロードすると、正常に動作します。ただし、メニューボタンをクリックしてビューをモーダルに表示してからビューを閉じると、スクロールビュー全体が左に移動します。スクロールビューの開始部分が画面から左にずれ、スクロールビューの終了部分に余白が追加されました。
シークの前後で contentoffset を確認しましたが、同じままで、uiscrollview の内容が完全に左にシフトしたように見えます。
自動レイアウトを使用してスクロールビューを作成しています。私のスクロールビューには、いくつかのビューを保持するコンテナビューがあります。コンテナー ビューは、コンテナー ビューに入れるサブビューの数によってスクロール ビューのサイズを定義します。
Leavign ScrollView サブビュー UIView: 0x1f088040; フレーム = (0 0; 1597.5 192.5); レイヤー = CALayer: 0x1f0552c0
ビューが表示されました ScrollView サブビュー UIView: 0x1f088040; フレーム = (-480 0; 1597.5 192.5); レイヤー = CALayer: 0x1f0552c0
さらに奇妙なのは、コンテナー ビューを元のサイズに戻すと、スクロールを開始するとすぐに元のサイズにとどまらず、正しい初期値が設定された後、間違った値にリセットされることです。
prepareForSegue では:
ScrollView サブビューを終了する UIView: 0x1e06a3a0; フレーム = (0 0; 1597.5 192.5); レイヤー = CALayer: 0x1e03a290
ViewDidAppear で 0 0 に戻す前に
ビューが表示されました ScrollView サブビュー UIView: 0x1e06a3a0; フレーム = (-480 0; 1597.5 192.5); レイヤー = CALayer: 0x1e03a290
ビュー内でスクロールしました
view Did ScrollView Subiews UIView: 0x1e06a3a0; フレーム = (0 0; 1597.5 192.5); レイヤー = CALayer: 0x1e03a290
view Did ScrollView サブビュー UIView: 0x1e06a3a0; フレーム = (-480 0; 1597.5 192.5); レイヤー = CALayer: 0x1e03a290
view Did ScrollView サブビュー UIView: 0x1e06a3a0; フレーム = (-480 0; 1597.5 192.5); レイヤー = CALayer: 0x1e03a290
view Did ScrollView サブビュー UIView: 0x1e06a3a0; フレーム = (-480 0; 1597.5 192.5); レイヤー = CALayer: 0x1e03a290
常に160の倍数のオフセットのようです