2012-04-25 3 views
1

Я использую [[UIScreen mainScreen] bounds] на основе создания множества подзадач. Я также использую значения от [[UIApplication sharedApplication] statusBarFrame] и self.navigationController.toolbar.frame, чтобы в конечном итоге определить кадрирование полезного пространства просмотра, которое я могу использовать в приложении.Определение размеров экрана при повороте устройства

Я вижу проблемы, когда пытаюсь обработать поворот устройства. С некоторой отладкой я узнаю, что значения, которые я получаю из вышеприведенных методов, не обязательно являются тем, что я ищу.

Короче говоря, независимо от поворота устройства, я в конечном счете ищут размер представления (экран минус статус и панель управления навигацией), то есть моя рабочая область. Как вы посоветуете получить этот размер/фрейм?

Спасибо.

+0

Решенный это, следуя информации на этом посту - http://stackoverflow.com/q/7905432/870345 – Steven

ответ

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; 
} 
0

Возможно, это не лучший способ, но вы можете сбросить UIView на свой взгляд и установить его пружины и стойки, чтобы он автоматически сортировался и оставался на весь экран. Затем установите рамку через выход к этому виду.

+0

Спасибо. Конечно, я думаю, что ваш метод будет работать, но, как вы говорите, я думаю, что сброс пустого представления не является оптимальным. Я собираюсь провести более простой способ этого, от сообщества. То, что я пытаюсь сделать, должно выполняться * много * приложений там. – Steven

Смежные вопросы