1

これを試して、

シンプルなビューコントローラーアプリのようなシンプルなランドスケープモードのiPhoneアプリがあるとします。

また、viewcontroller.mファイルの自動回転のコメントを解除します。

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  NSLOG(@"width:%f,height:%f",self.view.frame.size.width,self.view.frame.size.height);
  return YES;
}

その後、iphoneシミュレーターで実行し、command+leftまたはcommand+rightで回転させてみてください。

ポートレートモードではwidth:320.000、height:480.000、ランドスケープモードではwidth:480.000、height:320.000のようなものになると思います。

代わりに、実際の向きが何であれ、常にwidth:320.000、height:480.000を取得しました。

だから私の質問は、ビューのサイズを自動的に正しく取得する必要があるのですか?

4

1 に答える 1

0

幅/高さを取得してみてください:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 

{
  NSLog(@"view frame: %@",NSStringFromCGRect(self.view.frame));
}

また、回転時にサイズを変更するには、ビューに UIAutoresizingMasks を設定する必要があります。

于 2010-07-26T16:17:29.347 に答える