0

私は横向きのみをサポートするアプリを持っています。それはios6でうまく機能しますが、ios5では一部のサブビューに縦座標とサイズがあるように見えます。私は置きました

- (BOOL)shouldAutorotateToInterfaceOrientation:   (UIInterfaceOrientation)interfaceOrientation {
   return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
      interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

私が想像できるところならどこでも、これらのビューはportaitに固執しているように見えますが、私の幅パラメータは高さであるように見え、その逆も同様です。

外観のメインビューは正しいように見えますが、一部のサブビュー、特に他の要素から位置とサイズを計算するサブビューは間違っているようです。これはios6を壊す可能性があり、条件付きコードを実行したくない場合は、ディメンションを交換することを恐れています。それを避けることができます。

誰かがこれを見たことがありますか?私は他のいくつかの質問を読みましたが、それらは回転の処理を扱っているようでしたが、私の場合、私は回転していません。

基本的に、ナビゲーションコントローラーのviewDidLoadで

私のフレームには:

2013-01-10 17:14:29.445 EdwardsSync[29070:c07] Width:: 768.000000
2013-01-10 17:14:29.445 EdwardsSync[29070:c07] Height:: 1024.000000

横向きに見えても。これはフレームと境界に当てはまります。

viewDidAppearまで待つと面白いです。座標が正しいです。

アプリの向きをもっと早く伝える方法はありますか?

4

3 に答える 3

0

UIViewController での回転のサポートは、iOS 6 で変更されました。このページの「ビューの回転の処理」セクションを参照してください。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

特に、supportedInterfaceOrientationsおよびshouldAutorotateメソッドを確認してください。ヘッダー ファイルのコメントは非常に役立ちます。

また、アプリの Info.plist ファイルでどの向きを定義しましたか?

于 2013-01-10T21:53:40.340 に答える
0

ビューの autoresizingMask を設定します

yourview.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

これを使用して高さと幅を取得します

CGRectGetWidth(self.view.frame)
CGRectGetHeight(self.view.frame)
于 2013-01-11T04:46:02.780 に答える
0

また、Interface Builder の xib に入り、ビューのサイズを調整します。ビューの下のプロパティは、方向ランドスケープを選択します。[シミュレートされたメトリック] の下にあります。また、サイズ メトリックで 1024 x 768 などを指定できます。

ビルド設定で、必要に応じて縦向きビューを削除します。

于 2013-01-10T22:10:38.603 に答える