2014-09-09 2 views
8

J'ai créé un module simple dans lequel j'ajoute une sous-vue à UIWindow. Je l'ai imprimé self.windows et je reçois dans le simulateur ios 7 (Xcode 5.1.1):Cadre UIWindow dans ios 8 différent de ios 7 dans Paysage

<UIWindow: 0x794320d0; frame = (0 0; 1024 768); gestureRecognizers = <NSArray: 0x79437a80>; layer = <UIWindowLayer: 0x7943c400>> 

La question est:

<UIWindow: 0x8db1670; frame = (0 0; 768 1024); autoresize = W+H; gestureRecognizers = <NSArray: 0x8db1a70>; layer = <UIWindowLayer: 0x8db17d0>> 

mais je reçois sur ios8 (Xcode 6 beta 6): pourquoi existe-t-il une différence dans la propriété frame?

+0

ont regardé ici, http://stackoverflow.com/questions/24150359/isuiscreen-mainscreen-bounds-size-becoming-orientation-dependent-in-ios8 – Jageen

Répondre

9

probablement dans votre AppDelegate vous initialiser votre UIWindow comme ce

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

Avant iOS8 la limite propriété de UIScreen retourne le rectangle englobant de l'écran physique (qui est, portrait), mais à partir de iOS8 bounds lorsque l'appareil tourne documentation.

Vous pouvez maintenant utiliser nativeBounds si vous souhaitez obtenir le rectangle de délimitation de l'écran physique.

Remarque: nativeBounds renvoie l'écran en pixels mais les bounds le renvoie en points.

0

Ma solution à ce problème était d'ignorer le:

CGAffineTransformMakeRotation 

sur iOS8 et maintenant tout fonctionne pour moi! merci :)

+3

et comment pourriez-vous faire cela? – whyoz

+0

Pas le plus utile des réponses. Vous voulez élaborer? – absessive

Questions connexes