10
votes

Obtenir la taille de l'écran sur iOS 8

J'ai essayé [[UISREEN MAINSCREEN] limites] Pour obtenir la taille d'écran d'un iPhone redimensionnable sur Xcode 6 simulateur. Mais cela ne prend pas en compte la nouvelle largeur de l'écran et la hauteur de l'écran que je l'assigne.

Y a-t-il un meilleur moyen d'obtenir la taille de l'écran? Même si je réglais la taille de l'écran sur 320x800 les limites [[UISREEN MAINSCREEN]] me renvoie (CGRRECT) $ 0 = Origine = (x = 0, y = 0) Taille = (largeur = 768, hauteur = 1024)

Entrez la description de l'image ici


1 commentaires

Dans un contrôleur d'affichage, avez-vous essayé self.view.bounds?


3 Réponses :


17
votes

suivant

CGRRECT RECH = [[[UISREEN MAINSCREEN] limites];

afin qu'il conserve les limites du rect. essayez une fois.


2 commentaires

Vous devez supprimer le * pour que cela fonctionne. Il jette une erreur sinon.


Cela ne fonctionne pas en utilisant iOS 8.4.1 sur iPhone 5. La détection de la taille de l'écran de l'iPhone 4 / 4S



1
votes

Cela arrive dans iOS8 et iOS9. Pas sûr d'environ 7 n'a pas été testé:

var screenWidth: CGFloat {
    if UIInterfaceOrientationIsPortrait(screenOrientation) {
        return UIScreen.mainScreen().bounds.size.width
    } else {
        return UIScreen.mainScreen().bounds.size.height
    }
}
var screenHeight: CGFloat {
    if UIInterfaceOrientationIsPortrait(screenOrientation) {
        return UIScreen.mainScreen().bounds.size.height
    } else {
        return UIScreen.mainScreen().bounds.size.width
    }
}
var screenOrientation: UIInterfaceOrientation {
    return UIApplication.sharedApplication().statusBarOrientation
}


0 commentaires

2
votes

dans Swift 4.0, 3.0

let screenRect:CGRect = UIScreen.main.bounds


0 commentaires