Dans l'application iPhone, lors de l'exécution de l'application sur l'appareil Comment détecter la résolution d'écran de l'appareil sur lequel l'application s'exécute?
Dans l'application iPhone, lors de l'exécution de l'application sur l'appareil Comment détecter la résolution d'écran de l'appareil sur lequel l'application s'exécute?
CGRect screenBounds = [[UIScreen mainScreen] bounds];
Cela vous donnera la résolution entière de l'écran en points, donc ce serait généralement 320x480 pour les iPhones. Même si l'iPhone4 a une taille d'écran beaucoup plus grande, iOS restitue 320x480 au lieu de 640x960. Ceci est principalement dû à la rupture des anciennes applications.
CGFloat screenScale = [[UIScreen mainScreen] scale];
Cela vous donnera l'échelle de l'écran. Pour tous les appareils qui n'ont pas d'écrans Retina, cela renverra un 1.0f, tandis que les appareils Retina Display donneront un 2.0f et l'iPhone 6 Plus (Retina HD) donnera un 3.0f.
Maintenant, si vous souhaitez obtenir la largeur et la hauteur des pixels de l'écran de l'appareil iOS, il vous suffit de faire une chose simple.
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
En multipliant par l'échelle de l'écran, vous obtenez la résolution réelle en pixels.
Une bonne lecture sur la différence entre les points et les pixels dans iOS peut être lue ici .
EDIT: (Version pour Swift)
let screenBounds = UIScreen.main.bounds
let screenScale = UIScreen.main.scale
let screenSize = CGSize(width: screenBounds.size.width * screenScale, height: screenBounds.size.height * screenScale)
La classe UIScreen vous permet de trouver la résolution de l'écran en points et pixels.
Les résolutions d'écran sont mesurées en points ou pixels. Il ne doit jamais être confondu avec la taille de l'écran. Une taille d'écran plus petite peut avoir une résolution plus élevée.
'Bounds.width' de UIScreen renvoie la taille rectangulaire en points
'NativeBounds.width' de UIScreen renvoie une taille rectangulaire en pixels. Cette valeur est détectée comme PPI (point par pouce). Affiche la netteté et la clarté de l'image sur un appareil.
Vous pouvez utiliser la classe UIScreen pour détecter toutes ces valeurs.
Swift3
Console
Swift 2.x
Objectif c
la source
Utilisez-le dans App Delegate: j'utilise le storyboard
la source
Pour iOS 8, nous pouvons simplement utiliser ceci
[UIScreen mainScreen].nativeBounds
, comme ça:la source
Consultez la référence UIScreen: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html
la source
NSLog(@"%f",[[UIScreen mainScreen] scale]);
Utilisez ce code, il vous aidera à obtenir la résolution d'écran de tout type d'appareil
la source