Il seguente codice può essere utilizzato per ottenere bounds
, coordinateSpace
, nativeScale
e scale
, vale a dire su un iPhone 6 Plus il nativeScale
è 2.608 e quando il dispositivo in l'esecuzione in modalità ingrandita è 2.88 (nota che è diverso nel simulatore):
UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);
codice per rilevare iPhone 6 Plus:
-(BOOL)iPhone6PlusDevice{
// Scale is 3 currently only for iPhone 6 Plus
if ([UIScreen mainScreen].scale > 2.9) return YES;
return NO;
}
o
-(BOOL)iPhone6PlusUnZoomed{
if ([self iPhone6PlusDevice]){
if ([UIScreen mainScreen].bounds.size.height > 720.0) return YES; // Height is 736, but 667 when zoomed.
}
return NO;
}
Nota: Se si sta verificando per iPhone 6 Plus, per regolare l'interfaccia utente allora Non tiratevi contare su .nativeScale
, perché il simulatore e un dispositivo vero e proprio danno risultati diversi.
fonte
2014-09-21 21:46:00
Questo ha funzionato per me! Dovevo semplicemente aggiungere mainScreen(). "UIScreen.mainScreen(). NativeScale". Molto utile per ottenere immagini da un servizio Web in base alla loro larghezza e altezza e in una vista immagine: D – nmdias