このサイトで同様の質問をたくさん見つけましたが、どちらも私の問題を完全には解決しませんでした。
私の ViewController はランドスケープ モードであり、UIAlertView を同じモードで表示したいと考えています。ここでいくつかの答えを見つけましたが、縦向きモードで表示した後にのみ UIAlertView を回転させます。
これは私が使用するコードです:
- (void)didPresentAlertView:(UIAlertView *)alertView
{
// UIAlertView in landscape mode
[UIView beginAnimations:@"" context:nil];
[UIView setAnimationDuration:0.1];
alertView.transform = CGAffineTransformRotate(alertView.transform, 3.14159/2);
[UIView commitAnimations];
}
UIViewController をランドスケープ モードに回転させるために、次のコードを使用しました。
- (BOOL)shouldAutorotate {
UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation==UIInterfaceOrientationLandscapeRight) {
// do some sh!t
}
return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight;
}