Question

Je créé une application pour l'iPad en utilisant OpenGL et ont des problèmes avec la rotation de l'écran. L'application elle-même fonctionne très bien et affiche correctement dans les quatre orientations, mais d'autres éléments que partiellement répondre à la rotation de l'appareil.

OpenGL gère la rotation de l'application à l'aide de matrices de transformation. Que tout fonctionne très bien. Les images par défaut affichent également à la rotation correcte.

La barre multi-tâches, cependant, ne tourne pas comme il se doit. Il apparaît sur le côté que l'application a été ouverte. Donc, si j'ouvre l'application, puis appuyez deux fois sur le bouton de la maison, il est du bon côté, mais après avoir fait tourner l'appareil, il reste sur le même côté jusqu'à ce que l'application est fermée et rouverte. Lorsque cette barre est révélé la rotation de l'application OpenGL pour correspondre à la position de la barre.

boîtes de dialogue, comme le « signe dans le centre jeu » pop-up sont pas non plus tourner correctement. Ils semblent apparaître dans l'orientation portrait standard.

Je ne sais pas s'il y a d'autres détails spécifiques nécessaires pour identifier le problème, mais toutes les suggestions sont très appréciés.

Était-ce utile?

La solution

il me semble avoir mis en place une solution à la recherche dans des extraits d'autres sujets. Je pense que ça a résolu le problème.

J'ai une classe principale qui contrôle la plupart de ma demande. Il a déjà été enregistré pour recevoir les notifications de rotation de l'appareil comme celui-ci:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];

I a ajouté quelques lignes à la fonction de gestionnaire d'orientation pour définir manuellement l'emplacement de la barre d'état:

- (void) updateOrientation {
    if ([[UIDevice currentDevice] orientation] < 5 && [[UIDevice currentDevice] orientation]>0) {
        orientation = [[UIDevice currentDevice] orientation];
        [UIApplication sharedApplication].statusBarOrientation = orientation;
    }
}

Les limites conditionnelles Le gestionnaire pour répondre uniquement aux orientations portrait et paysage et pas fait face et face vers le bas.

Si quelqu'un a une meilleure solution que je voudrais encore l'entendre, sinon, espère que cela peut aider quelqu'un d'autre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top