I´m programming an app on iOS5 ipad.
when a custom view finish load, on viewDidLoad, i call a function that set an aspect to some programically views like:
switch (interfaceOrientation)
{
case UIDeviceOrientationPortrait:
{
// Size 3 views using self.view.bounds.size.height
// and self.view.bounds.size.width
break;
}
case UIDeviceOrientationPortraitUpsideDown:
{
// Size 3 views using self.view.bounds.size.height
// and self.view.bounds.size.width
break;
}
case UIDeviceOrientationLandscapeLeft:
{
// Size 3 views using self.view.bounds.size.height
// and self.view.bounds.size.width
break;
}
case UIDeviceOrientationLandscapeRight:
{
// Size 3 views using self.view.bounds.size.height
// and self.view.bounds.size.width
break;
}
default:
break;
}
And i call that function on shouldAutorotateToInterfaceOrientation:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
[self setAspect:aspect];
return YES;
}
When i rotate the app, put the views on the correct position, but, when is launched the app, if i have the ipad on Landscape, it don´t work correctly. It take the sizes of portrait. If i rotate the device, the problem is fixed, but i don´t like that problem in my app.
I don´t know why could be happening this, i have readed that call aspect on viewdidload is too early. Where must I call it the setAspect function?
I had this same issue today.
I ended up having to add: self.view.autoresizesSubviews = YES; to my viewDidLoad method, even though I had autoresize checked in Interface Builder.