This is quite likely to be do with floating-point calculation optimization.
When building for release, by default, Xcode will try to fully optimize your code, including making your floating-point calculations more efficient. However, sometimes they can be incorrectly optimized, and this can cause major issues especially with positioning / sizing of views etc.
For me, this happens when building for release + armv6 architecture, and I've had exactly the same problem (only realized when released) before.
Thankfully, there is a way to disable the floating-point optimizations. Here's how:
Using LLVM GCC 4.2
- Click on your project in the files pane on the left
- Click the project name under
Targets
(as seen below), then click "Build Settings".
- Search for "thumb" in the search box on the right hand side
- You should see a setting called "Compile for Thumb" under "LLVM GCC 4.2 - Code Generation". If you don't, it's because you're using the Apple LLVM compiler 3.0 (instructions for that are below).
- Hover over Release, and click the plus icon.
- A new option should appear, with a drop-down, select "ARMv6" from the dropdown.
- Then select "No" for that option. It should now look like below:

Using Apple LLVM 3.0 Compiler
- Follow steps 1 and 2 above.
- Search for "other c flags" in the search box
- Follow the same steps above to add a specific configuration for ARMv6 + release.
- Double-click the box with the flags in, and add the flag
-mno-thumb
. It should now look like below

If it still has issues under the release build after that, you may want to try disabling compile for thumb globally.
Hope that helps.