1

我正在使用[[UIScreen mainScreen] bounds]构建许多子视图的基础。我还利用来自[[UIApplication sharedApplication] statusBarFrame]self.navigationController.toolbar.frame最终确定我可以在应用程序中使用的有用视图空间的框架。

我在尝试处理设备旋转时遇到了问题。通过一些调试,我了解到我从上述方法中获得的值不一定是我想要的。

简而言之,无论设备旋转如何,我最终都会寻找作为我工作区域的视图大小(屏幕减去状态和导航控制工具栏)。你如何建议我获得这个尺寸/框架?

谢谢。

4

2 回答 2

1

通过以下有关此帖子的信息解决此问题 - stackoverflow.com/q/7905432/870345。我的代码:

- (CGSize)currentSize
{
    CGSize size = [UIScreen mainScreen].bounds.size;
    UIApplication *application = [UIApplication sharedApplication];
    if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
        size = CGSizeMake(size.height, size.width);
    }
    if (application.statusBarHidden == NO) {
        size.height -= MIN(application.statusBarFrame.size.width, application.statusBarFrame.size.height);
    }
    size.height -= self.navigationController.navigationBar.frame.size.height;
    return size;
}
于 2012-04-26T14:44:52.307 回答
0

可能不是他最好的方法,但您可以在视图上放置一个 UIView 并设置它的弹簧和支柱,以便它自动调整大小并保持全屏显示。然后通过插座获取框架到这个视图。

于 2012-04-25T15:59:50.670 回答