确定设备旋转时的屏幕尺寸

时间:2012-04-25 07:55:23

标签: objective-c uiview

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

我在尝试处理设备旋转时遇到问题。通过一些调试,我知道从上面的方法得到的值不一定是我正在寻找的。

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

感谢。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

可能不是他最好的方式,但你可以在你的视图上放下一个UIView并设置它的弹簧和支柱,以便它自动调整并保持全屏。然后通过插座将框架放到此视图中。