IPhone/IPad: Comment obtenir la largeur de l'écran par programme?




objective-c cocoa-touch (5)

Cela peut être fait en 3 lignes de code :

// grab the window frame and adjust it for orientation
UIView *rootView = [[[UIApplication sharedApplication] keyWindow] 
                                   rootViewController].view;
CGRect originalFrame = [[UIScreen mainScreen] bounds];
CGRect adjustedFrame = [rootView convertRect:originalFrame fromView:nil];

Salut je me demande s'il y a un moyen d'obtenir la largeur par programmation.

Je cherche quelque chose de suffisamment général pour accueillir iphone 3gs, iphone 4, ipad. En outre, la largeur devrait changer selon que l'appareil est en mode portrait ou paysage (pour ipad).

Quelqu'un sait-il comment faire ça? J'ai cherché pendant un moment ... merci!


Depuis iOS 9.0, il n'y a aucun moyen d'obtenir l'orientation de manière fiable. C'est le code que j'ai utilisé pour une application que je conçois uniquement en mode portrait, donc si l'application est ouverte en mode paysage, elle sera toujours précise:

screenHeight = [[UIScreen mainScreen] bounds].size.height;
screenWidth = [[UIScreen mainScreen] bounds].size.width;
if (screenWidth > screenHeight) {
    float tempHeight = screenWidth;
    screenWidth = screenHeight;
    screenHeight = tempHeight;
}

Utilisez ce code, cela aidera

[[UIScreen mainScreen] bounds].size.height
[[UIScreen mainScreen] bounds].size.width

Voici un moyen rapide d'obtenir des tailles d'écran, cela prend également en compte l'orientation de l'interface actuelle:

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
}

Ceux-ci sont inclus en tant que fonction standard dans:

https://github.com/goktugyil/EZSwiftExtensions


CGRect screen = [[UIScreen mainScreen] bounds];
CGFloat width = CGRectGetWidth(screen);
//Bonus height.
CGFloat height = CGRectGetHeight(screen);






ipad