縦向きまたは横向きモードで起動できるアプリがあります。メイン画面のコントロールは、アプリケーションのモードによって異なって見えます。
ここに問題があります-アプリケーションを横向きモードで起動すると、コントロールが本来あるべき場所に配置されず、アプリが縦向きモードのように位置が保持されます。私はこれを少しテストしようとしましたが、ここに私が見つけたものがあります -
viewDidLoad と ViewWillappear で、アプリは横向きモードですが、アプリが縦向きモードであるという情報を取得します。ビューでは、正しい値に設定されているように見えました-ランドスケープモード。問題は、ビューが表示される前に、これらのコンポーネントを適切な位置に設定することです (そうでない場合は、画面上で再配置されていることがはっきりとわかりません)。
これを処理する適切な方法は何ですか?
編集: viewDidLoad と ViewWillAppear で、私はこれを呼び出します:
orientation = [self getOrientation];
if (orientation == OrientationsLandscape) {
NSLog(@"Landscape");
}
else {
NSLog(@"Portrait");
}
ここに[getOrientation]の実装があります
- (int) getOrientation {
int currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
if (UIInterfaceOrientationIsPortrait(currentOrientation)) return OrientationsPortrait;
else return OrientationsLandscape;
}
および列挙定義:
typedef enum {
OrientationsLandscape = 0,
OrientationsPortrait
} Orientations;
デバイスが横向きモードでアプリをインストールしようとすると、「横向き」ではなく「縦向き」が 2 回印刷されます。