J'ai créé un UIViewController (basé sur How to switch views when rotating) pour basculer entre 2 vues lorsque l'appareil tourne. Chaque vue est "spécialisée" pour une orientation particulière.Vues déplacées hors de la position lors de la rotation
Il utilise la notification de UIDeviceOrientationDidChangeNotification pour changer de vue:
-(void) deviceDidRotate: (NSNotification *) aNotification{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
NSLog(@"Device rotated to %d!", orientation);
if ((orientation == UIDeviceOrientationPortrait) ||
(orientation == UIDeviceOrientationPortraitUpsideDown)) {
[self displayView:self.portraitViewController.view];
}else if ((orientation == UIDeviceOrientationLandscapeLeft) ||
(orientation == UIDeviceOrientationLandscapeRight)) {
[self displayView:self.landscapeViewController.view];
}
}
et genre de travaux. Les problèmes apparaissent lorsque je fais pivoter vers Paysage puis vers Portrait. Lorsque vous allez retour au portrait des sous-vues ne sont pas affichés au bon endroit, en particulier la UIPickerView:
Première Portrait:
Rotation à Paysage:
Retour à Portrait:
Si je répète le processus de rotation, les choses empirent. Qu'est-ce que je fais mal?
Le code source est ici: http://dl.dropbox.com/u/3978473/forums/Rotator.zip
Merci à l'avance!
J'ai essayé de changer le code displayView: comme vous l'avez suggéré, mais cela n'a pas fonctionné. Merci quand même. – cfischer