2012-02-16 3 views
0

до сих пор я использую, если и другое заявление, чтобы определить размер объектов, которые отображаются на iPhone или IPad, как, например:Автоматическая корректировка разрешения устройства IOS

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); 

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

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

+0

Почему вы использовали масштаб вообще для рамки? Это не имеет никакого смысла, поскольку значения фрейма всегда находятся в точках, а не в пикселях ... –

ответ

4

Кажется, вы переусердствовали. Почему не просто:

[self.navBar setFrame:CGRectMake(0.0 , 0.0, self.view.frame.size.width, 44.0)]; 
+0

привет, я пытаюсь часами реализовывать это, но кажется, что он работает только на iPhone! На iPad я получаю значения для размера iphone, поэтому панель навигации небольшая и не может покрыть весь экран. Есть ли еще один шаг, который я должен сделать? – user1015777

+0

Я использовал NSLog, чтобы проверить его, и он всегда дает мне значение 320.00 – user1015777