0

我不敢相信这是不可能的。这只是每个人都必须要求的东西之一。

所以这:

[UIScreen currentScreen] bounds];

在我的 iPhone 上返回 320 的宽度,无论手机是纵向还是横向。所以我做了这个辅助方法:

+(CGRect)screenFrame {

    CGRect frame = [UIScreen mainScreen].bounds;

    if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation])) {
        return frame;
    }
    else {
        CGRect newFrame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.height, frame.size.width);
        return newFrame;
    }

}

效果很好,除非设备平放时,显然这使它认为它是横向的,即使屏幕没有变成横向。

我该如何调整它以使其正常工作?

4

1 回答 1

3

最好的指导(主要是因为“平躺”方向)是使用[[UIApplication sharedApplication] statusBarOrientation]. 然后,这将根据应用程序如何调整主窗口的坐标变换矩阵为您提供正确的值。

于 2012-07-07T15:42:00.387 回答