Ios iPad2在移动到“横向”之前会停留一秒钟

Ios iPad2在移动到“横向”之前会停留一秒钟,ios,objective-c,xcode,ios7,Ios,Objective C,Xcode,Ios7,我们有一个应用程序,这是唯一的景观,这是伟大的所有苹果设备。 它也有发射图像。 我们被这个错误迷住了 我们仅在设备方向菜单中设置横向应用程序。 所有视图仅在代码中定位 仅在iPad2(iOS7)上发生的情况是,当您在视图之间切换时,您会在一秒钟内看到一种纵向模式(这看起来很糟糕,因为图形仅用于横向,所以图像显示在半屏幕上),然后在一秒钟后切换回横向 对于其他一些视图,iPad2由于某些原因只能永远停留在纵向上-这意味着我们可以在半屏幕上看到图形。它的位置不正确 我们得到的屏幕大小很好 f

我们有一个应用程序,这是唯一的景观,这是伟大的所有苹果设备。 它也有发射图像。 我们被这个错误迷住了

我们仅在设备方向菜单中设置横向应用程序。 所有视图仅在代码中定位

仅在
iPad2(iOS7)
上发生的情况是,当您在视图之间切换时,您会在一秒钟内看到一种
纵向
模式(这看起来很糟糕,因为图形仅用于横向,所以图像显示在半屏幕上),然后在一秒钟后切换回横向

对于其他一些视图,
iPad2
由于某些原因只能永远停留在纵向上-这意味着我们可以在半屏幕上看到图形。它的位置不正确

我们得到的屏幕大小很好

    float width=[UIScreen mainScreen].bounds.size.width;
        float height=[UIScreen mainScreen].bounds.size.height;
768/1024
****用故事板制作的视图是可以的-用软件制作的其他视图是不好的。

我使用以下代码(基于上面评论中给出的链接):


因为在iOS 8中,边界取决于方向。不管怎样,你试过使用nativebounds吗?
        BOOL OSIsBelowIOS8 = [[[UIDevice currentDevice] systemVersion] floatValue] < 8.0;
        if(OSIsBelowIOS8) {
            if( [ [ UIScreen mainScreen ] respondsToSelector: @selector( nativeBounds ) ] )
            {
                self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] nativeBounds]];
            }
            else
            {
                self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
            }
        }  else {
            self.window = [[UIWindow alloc] initWithFrame: [self screenBoundsOrientationDependent] ];
        }
    //Always return the iOS8 way - i.e. height is the real orientation dependent height
    - (CGRect)screenBoundsOrientationDependent {
        UIScreen *screen = [UIScreen mainScreen];
        CGRect screenRect;
        if (![screen respondsToSelector:@selector(fixedCoordinateSpace)] && UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
            screenRect = CGRectMake(screen.bounds.origin.x, screen.bounds.origin.y, screen.bounds.size.height, screen.bounds.size.width);
        } else {
            screenRect = screen.bounds;
        }
        return screenRect;
    }