2

風景専用アプリがあります。ビューは IB で横長 (568x320) として設計されています。しかし、私がこれを行うとき:

NSLog(@"view center: %@", NSStringFromCGPoint(self.view.center));

私はこれを得る:

view center: {160, 284}

これは、ポートレート モードでの中心となるものです。ビューの中心に物を配置したいので、これは多くの問題を引き起こしています。ビューが縦向きモードであると考えるのはなぜですか?ビューの中央に何かを配置する最良の方法は何ですか?

4

1 に答える 1

1

ここでのセンターとは、フレームの中心を指します。デバイスが回転してもフレームは回転しないことに注意してください。フレーム内の境界のみが回転します。

したがって、デバイスの向きに依存するコードを記述している場合は、ビューの中心 (x、y 座標) を取得するために境界を使用する必要があります。これを使用します。

self.view.bounds.size.width/2 と self.view.bounds.size.height/2。

私のiPhone5では、次のようになります。

  • (160,274) ポートレート モードでのビューの中心。縦向きのフル ビューのサイズは (320,568) であるため、これは理にかなっています。ステータス バーの y 軸で 20 ポイントを失います。
  • (284,150) は、ランドスケープ モードでのビューの中心です。ランドスケープでのフル ビューの寸法は (568,320) であるため、これは理にかなっています。ステータス バーの y 軸で 20 ポイントを失います。

上記の xy 参照は、デバイスとともに回転します。したがって、x は常に左から右、y は常に上から下です。

于 2013-03-05T22:02:46.553 に答える