Difficulty with apps with a forced landscape orientation

Posted by mahboudz on Stack Overflow See other posts from Stack Overflow or by mahboudz
Published on 2009-09-03T01:23:56Z Indexed on 2010/04/11 3:13 UTC
Read the original article Hit count: 456

Filed under:
|
|

I have two apps, both of which force the user to use the iPhone in landscape mode, in order to have a wider screen, instead of a taller one.

One of the things I have found is that my first view will look fine, but all other views come up with their subviews (UIButtons, UIPicker, UIViews) squeezed to one side or clipped (depending on whether the elements were set to move, resize or stay in the same position as the view size changed). All my views are designed in IB in the landscape orientation. My underlying UIWindow, and everything I can think of has been laid out in landscape orientation. Even my plist file has the UIInterfaceOrientationLandscapeRight flag set.

Now, if I load all my views at the same time as my rootview controller, then I have no problems. But if I have views loaded later, they get clipped or squeezed.

The only way to get around the problem was to add the following line in my code that flips in a new view:

[coming.view setFrame:CGRectMake(0, 0, 480, 300)];

Anyone know why I need to do this? Is it just that the iPhone assumes that loaded views are 300x480 unless a transform gets applied to them?

Thanks.

ps. This is what the view looks like if I don't call setFrame, as described above:

alt text

All viewcontrollers that get loaded after the first one will have their screen similarly squeezed down. For some reason the first viewcontroller doesn't have this issue.

© Stack Overflow or respective owner

Related posts about uiviewcontroller

Related posts about uiview