1. ホーム
  2. iphone

[解決済み] IPhone/IPadです。画面幅をプログラムで取得するには?

2023-05-09 15:41:10

質問

こんにちは プログラムで幅を取得する方法はないでしょうか。

私はiphone 3gs、iphone 4、ipadに対応するために十分に一般的なものを探しています。また、幅はデバイスが縦か横か(ipadの場合)に基づいて変更する必要があります。

誰かこれを行う方法を知っていますか?私はしばらくの間探していました...ありがとう!

どのように解決するのですか?

を見てみましょう。 UIScreen .

例えば

CGFloat width = [UIScreen mainScreen].bounds.size.width;

ステータスバーを含めたくない場合は、applicationFrameプロパティを見てください(幅には影響しません)。

アップデートを行いました。 UIScreen (-bounds or -applicationFrame) は、現在のインターフェースの向きを考慮しないことがわかりました。 より正しいアプローチは、UIView にその境界を求めることです。この UIView がビュー コントローラによって自動回転されていると仮定します。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    CGFloat width = CGRectGetWidth(self.view.bounds);
}

ビューコントローラによってビューが自動回転されない場合、ビューの境界のどの部分が 'width' と 'height' を表しているかを判断するためにインターフェースの向きを確認する必要があります。frameプロパティはUIWindowの座標空間におけるビューの矩形を提供し、(デフォルトでは)インターフェイスの向きを考慮しないことに注意してください。