为什么我的UIView位置会以我不知道的方式发生变化';我没料到?

为什么我的UIView位置会以我不知道的方式发生变化';我没料到?,uiview,ipad,Uiview,Ipad,我的iPad应用程序在启动和旋转视图时并没有达到我预期的效果 AppDelegate有 mainController.view作为子视图 mainController将splashController.view作为子视图 mainController通过调用同名的子视图控制器方法(然后是超级方法)响应WillAnimateRotationInterfaceOrientation Splash控制器具有1024 x 1024的图像视图。所以我试着把它放在子视图的中心 旋转时,我调整所有视图的边界(

我的iPad应用程序在启动和旋转视图时并没有达到我预期的效果

AppDelegate有 mainController.view作为子视图 mainController将splashController.view作为子视图

mainController通过调用同名的子视图控制器方法(然后是超级方法)响应WillAnimateRotationInterfaceOrientation

Splash控制器具有1024 x 1024的图像视图。所以我试着把它放在子视图的中心

旋转时,我调整所有视图的边界(在willAnimateRotation…方法中),如下所示:

横向1024x768
肖像768 x 1024

然后,通过除以上述值,我也用相同的方法将视图居中

我不担心状态栏的细节,现在是10像素

当应用程序以纵向模式启动并旋转到横向模式时,应用程序会按预期运行

当我启动或旋转到横向时,视图会变得一团糟。图像离左/上或右/下太远,即使我改变了中心位置。(未调整框架)


为什么这种情况只发生在横向左侧或右侧,而不发生在纵向或纵向倒置的情况下?

不知道为什么在某些情况下会发生这种情况,但在其他情况下不会发生这种情况,不过,我认为您可以通过简单地为您的splashView设置自动调整大小的遮罩,而不是截取旋转并重新调整视图,从而使自己的生活更加轻松

请尝试在加载时设置这些选项:

splashView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
splashView.contentMode = UIViewContentModeCenter;
抛弃你的意志。。。代码

戴夫