私のコードでは、UI の向きが横向きに変わると、すべてのビューがそこに収まり、ユーザーがスクロールして表示できるように、contentSize
の高さを増やしています。UIScrollView
私のXIBには
/UIView - ビュー |- UIScrollView - scrollView |- スクロール可能にする必要があるその他のサブビュー
scrollView はビューと同じサイズで、自動サイズ変更マスクは全方向にサイズ変更するように設定されています。
scrollView の高さの寸法がビューの高さよりもはるかに大きいことに気付きました。
たとえば、いくつかのデバッグ ログがあります。
NSLog(@"%@ - self.view.frame=%@, self.view.bounds=%@", NSStringFromSelector(_cmd), NSStringFromCGRect(self.view.frame), NSStringFromCGRect(self.view.bounds)); NSLog(@"self.scrollView.frame=%@, self.scrollView.bounds=%@", NSStringFromCGRect(self.scrollView.frame), NSStringFromCGRect(self.scrollView.bounds));
そしてそれは印刷します
willAnimateRotationToInterfaceOrientation:duration: - self.view.frame={{0, 0}, {480, 219}}, self.view.bounds={{0, 0}, {480, 219}} self.scrollView.frame={{0, 0}, {480, 399}}, self.scrollView.bounds={{0, 0}, {480, 399}}
Xcode IB でさえ、次のようになります。
UIScrollView
ビューと同じサイズにならないのはなぜですか?
ありがとう
アップデート
奇妙なことに、scrollView の高さを 460 (iPhone の縦長) に設定すると、Xcode/IB は、scrollView がその親ビューよりも小さいことを示します (これも同じ寸法を設定しています)。
しかし今、私は 1 つの XIB を持つテスト プロジェクトを作成しUIView
ました。そこには 1 つだけが追加され、UIScrollView
正常に見えます。UIScrollView
の高さは と一致しUIView
ます。
そのため、おそらく私はどういうわけか XIB を台無しにしてしまい、Xcode はそれをうまく処理できません。
とにかく、プログラムで寸法を設定しています(回転、UI構成の変更などを処理するため)。期待どおりに機能します。これは私の最初の iOS プロジェクトであるため、UIScrollView
. どうやらそうではありません:-)
コメントありがとうございます。