Can better end the screen orientation and compatible with iphone and ipad solutions.
IOS6 has a new technology auto layout to help solve this problem. Not only does this technology support the development of apps in different sizes, but you don't need to create nib files or storyboards for each language.
The problem with springs and struts
You are familiar with autosizing masks, which is known as "springs and struts" mode. Autosizing mask determines what happens to the view when the Superview size changes. For example, when a view has a variable width, if the superview becomes wider, he will also widen. If there is a fixed right spacing, the right spacing of the view is aligned with the right margin of the Superview.
Create a new project Strutsproblem, open main.storyboard, and remove the option to use AutoLayout in File Inspector . After removing the storyboard will use the old struts-and-springs mode.
Note: The Auto layout option is turned on by default for any new nib or storyboard file created using Xcode 4.5 or better. This feature is available in iOS 6 and later. If you want to create a IOS5-compatible app with the latest Xcode, you'll need to disable this auto layout option in each nib or storyboard file. By not selecting the Use AutoLayout check box.
Drag three different view to main storyboard.
Run on iPhone Retina 4-inch simulator . Turn into the following diagram:
In fact, what you expect is the following result:
The diagram parameter in the upper left corner is modified so that the view is fixed to the upper-left corner, and the horizontal and vertical dimensions of the view change when the Superview changes size.
Figure parameter Modification in the upper right corner
The diagram parameter changes below
After running again, the effect is as follows:
There is improvement but the padding inside margin is not right. The reason is that autosizing masks tells the views that when superview change size, they also want to change the size, but it does not explain how much change.
To solve these problems, you need to implement code in springs and struts mode. For example, you can change the size of the controls that need to be changed by Viewwilllayoutsubviews .
In the viewcontroller.m
Do not run the app first, you need to restore the autosizing masks for the previous three view settings, no one will conflict with the method above. But the different sizes of the iphone play a different effect, because the above thing for 4-inch iphone, if replaced by 3.5 will have a problem, because the above is also hard coding. You can also set the location by relative position, but it is very time-consuming if the UI is complex.
Beginning Auto Layout Tutorial in IOS 7:part 1