我的应用程序有几个 uiViews 并设置为支持两个方向。因为我的 uiViews 框架只是 iPad 整个尺寸的一部分,所以我试图根据 iPad 的保持方式来使我的 uiviews 框架居中。它是在 view controller.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。
我看到一些旧帖子并不真正适合这个问题并且令人困惑或过时,所以这里的任何帮助都会很棒。