views:

28

answers:

1

try this,

say you have a simple landscape mode iphone app, like a simple viewcontroller app.

also uncomment the autorotate in viewcontroller .m file like so

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

after that, simply run the thing on iphone simulator, and try to rotate it by command+left or command+right.

I would expect that I get something like width:320.000,height:480.000 when in portrait and width:480.000,height:320.000 in the landscape mode.

instead, i always got width:320.000,height:480.000 what ever the actual orientation is.

so my question is what should i automatically get the view's size correctly?

A: 

Try getting the width/height in:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 

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

Also your view needs to have UIAutoresizingMasks set in order to resize when rotated.

christo16