2009-02-11 3 views

Répondre

0
[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait]; 

Notez que ce ne fait pas partie du cadre UIDevice dans la documentation de l'API, donc Apple peut rejeter une application qui utilise.

+0

Cela fonctionne mais @micco note que l'application peut être rejetée. Cela a été confirmé par [@got nate] (http://stackoverflow.com/users/145186/): «Merci d'avoir envoyé [nom de l'application] sur l'App Store. Malheureusement, il ne peut pas être ajouté à l'App Store car il utilise une API privée. "3.3.1 Les applications ne peuvent utiliser que des API documentées de la manière prescrite par Apple et ne doivent utiliser ou appeler aucun service privé. Apis." L'API non publique incluse dans votre application est setOrientation :. –

0

Vous pouvez modifier l'orientation d'une vue en utilisant CGAffineTransforms au lieu d'API privées. Vous devez modifier l'orientation UIStatusBarOrientation pour faire correspondre la nouvelle orientation et trouver un angle pour faire pivoter la vue:

Par exemple, si votre vue est en orientation paysage et que vous souhaitez la faire revenir en mode portrait.

CGAffineTransform transform = CGAffineTransformIdentity; 

switch ([[UIApplication sharedApplication] statusBarOrientation]) { 

    case UIInterfaceOrientationLandscapeLeft: 
     transform = CGAffineTransformMakeRotation(M_PI_2); 
     break; 

    case UIInterfaceOrientationLandscapeRight: 
     transform = CGAffineTransformMakeRotation(-M_PI_2); 
     break; 

    default: 
     break; 
} 

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]; 

[UIView animateWithDuration:0.2f animations:^ { 

    [view setTransform:transform]; 
}]; 

[view setFrame:CGRectMake(0, 0, 320, 480)]; 
[view setNeedsLayout]; 
Questions connexes