1

私のビューはもともとランドスケープ モードです。ボタンをテープで留めると、縦向きモードでビューが開き、ここまでのすべてが見つかります。問題は、そのビューからルート ビューに戻ると、ビューが正しく回転しないことです。ビューを縦向きから横向きに回転させるために使用するコードは次のとおりです。

-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];

//rotate the page to lansscape
CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(-90*0.0174532925);
landscapeTransform = CGAffineTransformTranslate (landscapeTransform, 0.0, 0.0);

[self.navigationController.view setTransform:landscapeTransform];

self.navigationController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleHeight;    
self.navigationController.view.frame  = CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height);
self.navigationController.view.center  = CGPointMake (384.0, 544.0);

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;
}

これは、縦向きのページから戻った後の横向きのルート ページのスクリーン ショットです。

ここに画像の説明を入力

これがどのように見えるかです

ここに画像の説明を入力

4

1 に答える 1

1
-(void)viewWillDisappear:(BOOL)animated
{

[super viewWillDisappear:animated];

//rotate the page to lansscape
CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(-90*0.0174532925);
landscapeTransform = CGAffineTransformTranslate (landscapeTransform, 0.0, 0.0);

[self.navigationController.view setTransform:landscapeTransform];

self.navigationController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleHeight;    
self.navigationController.view.frame  = CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height+64);
self.navigationController.view.center  = CGPointMake (384.0, 512.0);

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;

}

縦向きモードのこのビューが消えた後に表示されていた横向きビューを調整するためにいじらなければならなかったのはこれでした、

self.navigationController.view.frame  = CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height+64);
self.navigationController.view.center  = CGPointMake (384.0, 512.0);

中心点とフレームの高さをいじって調整しました。

于 2012-06-23T04:18:29.423 に答える