2011-02-28 15 views
0

私は画面全体をカバーするビューを表示する必要があります。そのために私はこのコードを使用しますUIViewオリエンテーション風景

self.modalView = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
self.modalView.opaque = NO; 
self.modalView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f]; 
CheckBookAppDelegate *delegate = (CheckBookAppDelegate *)[UIApplication sharedApplication].delegate; 

UIActivityIndicatorView *myIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
myIndicator.center = CGPointMake(160, 240); 
[myIndicator startAnimating]; 
UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease]; 
label.text = @"Enviando..."; 
label.textColor = [UIColor whiteColor]; 
label.font = [UIFont fontWithName:@"Arial Rounded MT Bold" size:(18.0)]; 
label.backgroundColor = [UIColor clearColor]; 
label.opaque = NO; 
[label sizeToFit]; 
[self.modalView addSubview:label]; 
[self.modalView addSubview:myIndicator]; 
[delegate.window addSubview:modalView]; 
[myIndicator release]; 

を問題はビューが表示されたとき、それはポートレートモードで表示されますので、私は(iPadはランドスケープモードとあまりのViewControllerであるが)ランドスケープモードに表示する必要があるということです。

アイデア?

おかげ

答えて

2

セット変換:

self.modalView.transform = CGAffineTransformMakeRotation((180 * M_PI)/360); 

、すべてのサブビューの「modalView」内側に同じ変換を適用するには、私はそれが動作するはず願っています。

1

あなたのViewControllerにshouldAutorotateToInterfaceOrientationを変更しましたか?このようなあなたの「modalView」へ

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 
+0

このコードでは、問題が発生する可能性があります。サポートしたいすべての方向を明示的に確認する必要があります。問題のUIが横長モードで初めて入力された場合、そのコードが壊れることがあります。 – occulus

+0

はい、それは動作しません...任意のアイデアですか? – xger86x

+0

ありがとうございます!それは私を助けた – Meir

関連する問題