2015-02-14 5 views
-1

Привет всем, я использую последние xcode и 2 устройства (одинаковые). Один с прошивкой 7, а другой с прошивкой 8xcode ios 7 и ошибка экрана 8 экрана ios 8

В портретном режиме на прошивке 7 я получить разрешение экрана 1024x768 (что пейзаж) В портретном режиме на прошивке 8 я получить разрешение 768x1024 (фактический портрет)

Проблема в том, что я использую те же методы, что любой может помочь мне построить функцию и получить доступ к ней намного проще? Любая помощь будет оценена по достоинству. Благодаря

это мой код

CGFloat screenWidth = self.view.bounds.size.width; 
CGFloat screenHeight = self.view.bounds.size.height; 
[[NSUserDefaults standardUserDefaults] setInteger:screenWidth forKey:@"scwidth"]; 
[[NSUserDefaults standardUserDefaults] setInteger:screenHeight forKey:@"scheight"]; 
+0

Ваше приложение заблокировано на портрете (так что ширина всегда <высота)? – Wain

ответ

0

здесь я сделал метод для вас, вы можете выполнить его в первом запуске, он сохранит screenResolutions в NSUserDefaults

Он будет работать только с iOS6 ++

-(void)loadResolution{ 
    NSString *ver = [[UIDevice currentDevice] systemVersion]; 
    int ver_int = [ver intValue]; 
    if(ver_int > 6) 
    { 
     CGFloat screenWidth = self.view.bounds.size.width; 
     CGFloat screenHeight = self.view.bounds.size.height; 
     [[NSUserDefaults standardUserDefaults] setInteger:screenWidth forKey:@"scwidth"]; 
     [[NSUserDefaults standardUserDefaults] setInteger:screenHeight forKey:@"scheight"]; 

    } 

    if(ver_int > 7.9) 
    { 

     CGFloat screenWidth = self.view.bounds.size.width; 
     CGFloat screenHeight = self.view.bounds.size.height; 
     [[NSUserDefaults standardUserDefaults] setInteger:screenWidth forKey:@"scwidth"]; 
     [[NSUserDefaults standardUserDefaults] setInteger:screenHeight forKey:@"scheight"]; 

    } 
    NSLog(@"Loading Resolution...OK"); 

} 

Получить на экране границы с этим

NSInteger screenWidth = [[NSUserDefaults standardUserDefaults] integerForKey:@"scwidth"]; 
NSInteger screenHeight = [[NSUserDefaults standardUserDefaults] integerForKey:@"scheight"]; 
+0

Wooow, спасибо, что это именно то, что мне нужно, Большое спасибо :) –

+1

Почему бы вам не сохранить это в NSUserDefaults (или в любом месте), когда вы можете получить его в любое время? что, если устройство обновляется с iOs6 до 7 в дальнейшем, чтобы сохранить значение? По-моему, это ошибочный ответ, слабый дизайн, построенный на предположении. Apple изменила то, как они это делают, откуда вы знаете, что они не сделают этого снова? Используйте fMinf()/fMaxf() или аналогичные функции для извлечения больших и меньших размеров, а не предполагать поведение и проверку номеров версий. Извините, но его лениво. – Jef

+0

@Jef Если он вызывает метод в viewdidLoad и перезаписывает NSUserDefaults каждый раз, когда все в порядке, –