私のアプリにはいくつかのuiViewがあり、両方の向きをサポートするように設定されています。私のuiViewsフレームはiPadの全体のサイズの一部にすぎないので、iPadの向きに応じて、uiviewsフレームを中央に配置しようとしています。これは、viewcontroller.mファイルで次のように実行されます。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
UIInterfaceOrientation des=self.interfaceOrientation;
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) //iPad
{
CGRect ScreenBounds = [[UIScreen mainScreen] bounds];
if(des==UIInterfaceOrientationPortrait||des==UIInterfaceOrientationPortraitUpsideDown)//ipad-portrait
{
ipStPosX=(ScreenBounds.size.width -360)/2;
ipStPosY=100;
return YES;
}
else//ipad -landscape
{
ipStPosX=(ScreenBounds.size.height -360)/2;
ipStPosY=100;
return YES;
}
}
else//iphone
{
UIInterfaceOrientation des=self.interfaceOrientation;
if(des==UIInterfaceOrientationPortrait||des==UIInterfaceOrientationPortraitUpsideDown) //iphone portrait
{
return NO;
}
else //iphone -landscape
{
return YES;
}
}
}
アプリを起動して向きを変更すると、デバイスの持ち方に関係なく、常に縦向きの部分であるUIInterfaceOrientationPortraitに移動します。
私は、問題に実際には適合せず、混乱したり、日付が付けられていた古い投稿をいくつか見たので、ここでの助けは素晴らしいでしょう。