No iPhone App, enquanto o aplicativo é executado no dispositivo Como detectar a resolução da tela do dispositivo no qual o aplicativo está sendo executado?
No iPhone App, enquanto o aplicativo é executado no dispositivo Como detectar a resolução da tela do dispositivo no qual o aplicativo está sendo executado?
CGRect screenBounds = [[UIScreen mainScreen] bounds];
Isso fornecerá a resolução da tela inteira em pontos, de modo que normalmente seria 320x480 para iPhones. Mesmo que o iPhone4 tenha um tamanho de tela muito maior, o iOS ainda devolve 320x480 em vez de 640x960. Isso ocorre principalmente devido à quebra de aplicativos mais antigos.
CGFloat screenScale = [[UIScreen mainScreen] scale];
Isso fornecerá a escala da tela. Para todos os dispositivos que não possuem Retina Displays, isso retornará 1,0f, enquanto os dispositivos Retina Display darão 2,0f e o iPhone 6 Plus (Retina HD) dará 3,0f.
Agora, se você deseja obter a largura e altura de pixel da tela do dispositivo iOS, basta fazer uma coisa simples.
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
Ao multiplicar pela escala da tela, você obtém a resolução real de pixels.
Uma boa leitura sobre a diferença entre pontos e pixels no iOS pode ser lida aqui .
EDIT: (Versão para Swift)
let screenBounds = UIScreen.main.bounds
let screenScale = UIScreen.main.scale
let screenSize = CGSize(width: screenBounds.size.width * screenScale, height: screenBounds.size.height * screenScale)
A classe UIScreen permite encontrar a resolução da tela em Pontos e Pixels.
As resoluções de tela são medidas em pontos ou pixels. Nunca deve ser confundido com o tamanho da tela. Um tamanho de tela menor pode ter maior resolução.
'Bounds.width' do UIScreen retorna o tamanho retangular em Points
O 'nativeBounds.width' do UIScreen retorna o tamanho retangular em Pixels. Esse valor é detectado como PPI (ponto por polegada). Mostra a nitidez e a clareza da imagem em um dispositivo.
Você pode usar a classe UIScreen para detectar todos esses valores.
Swift3
Console
Swift 2.x
ObjectiveC
fonte
Use-o no App Delegate: estou usando o storyboard
fonte
Para o iOS 8, podemos apenas usar isso
[UIScreen mainScreen].nativeBounds
, assim:fonte
Consulte a Referência do UIScreen: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html
fonte
NSLog(@"%f",[[UIScreen mainScreen] scale]);
Use este código para ajudar a obter qualquer tipo de resolução de tela do dispositivo
fonte