理解できないオリエンテーション マジックが原因の問題に直面しています。まず、ViewController をロードする NavigationController を使用しています。このViewControllerにはScrollViewがあります。ScrollView の位置を尋ねると、間違ったデータが返されます。例: ScrollView の x 座標は、インターフェイス ビルダーでは 90 です。プログラムで ScrollView のフレームを取得すると、280 が返されます。アプリ内のすべてが横向きに設定されています。Info.plist、概要、ViewControllers の実装、インターフェイス ビルダー。
私はいくつかのスクリーンショットを作りました。多分彼らは間違いを見つけるのを助けています.
そして、すべての ViewController には次のものがあります。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
ストーリーボードから NavigationController を削除し、シミュレートされたメトリックを推論のままにすると、最初の ViewController がストーリーボードの縦向きに切り替わります。
NavigationController からビューのサイズをログに記録すると、縦向きになります
NSLog(@"frame %@", NSStringFromCGRect(self.view.frame));
出力は768x1024です