Автоматическая настройка на разрешение устройства iOS - PullRequest
0 голосов
/ 17 февраля 2012

до сих пор я использовал оператор if и else для определения размера объектов, отображаемых на iPhone или iPad, например:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown){
        //For Portrait on iPhone
        [self.navBar setFrame:CGRectMake(0.0 , 0.0, 320.0f, 44.0)];

    } else if (orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight){
        //For Landscape on iPhone
        [self.navBar setFrame:CGRectMake(0.0 , 0.0, 480.0f, 44.0)];

    }    
} else {
    if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown){
        //For Portrait on iPad
        [self.navBar setFrame:CGRectMake(0.0 , 0.0, 768.0f, 44.0)];

    } else if (orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight){
        //For Landscape on iPad
        [self.navBar setFrame:CGRectMake(0.0 , 0.0, 1024.0f, 44.0)];

    }      
}

Но теперь я хочу изменить это, чтобы сделать его немного более динамичным. Я пытаюсь использовать следующее, но мне совсем не везет.

CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGFloat screenScale = [[UIScreen mainScreen] scale];
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);

Может кто-нибудь помочь мне, как реализовать эти два вместе? Кажется, проблема в том, как я их перепутал. Если кто-нибудь может дать мне шаблон или даже подсказку для этого, я буду очень признателен.

Большое спасибо

1 Ответ

4 голосов
/ 17 февраля 2012

Кажется, ты слишком обдумываешь это. Почему бы просто:

[self.navBar setFrame:CGRectMake(0.0 , 0.0, self.view.frame.size.width, 44.0)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...