In a previous class, I present a UIViewController (with an XIB) in a UINavigationController. The XIB is blank because all views are coded in. I am running this code to show the UIScrollView:
mainScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, [UIScreen mainScreen].bounds.size.height-64)];
mainScrollView.backgroundColor = [UIColor clearColor];
mainScrollView.contentSize = CGSizeMake(320, 3525);
[self.view addSubview:mainScrollView];
The screenshots below are of the mainScrollView half scrolled down. The code above is the same for both of these screenshots.
On the device, it looks like this

On the simulator, it looks like this

When I last submitted this to the app store, I had the y value of the mainScrollView set to 64 and the height to subtract 64 from the device screen height. It looked perfect on the device, but on the simulator, it was moved down by 64. The version of my app I downloaded from the app store decided to go with the simulator, so in the app store, my app had a lot of misplaced views. The views were not misplaced until 7.0.1.
Also, both the device and the simulator have the builds being built with the same iOS 7 SDK. They both have iOS 7.0.3 on them, and they both are 4" screens.
Does anybody know how to make the views be correctly sized and positioned, so that there is no difference between the device and simulator and the app store version is actually done right? Thanks.