In iOS auto layouts are used to make applications view the same in all the sizes of devices in both portrait and landscape mode. The auto layout dynamically calculates the size of view and adjusts the controls based on the constraint values which we set for constraints.
Suppose if you make an iOS application for iPhone like 5S and open on 6S you will find that overall layout is not in fixed position and the whole layout shows ambiguous user interface. If we use auto-layout our application will appear the same in all the devices irrespective of size.
Now we will see how to use iOS auto layouts in our swift applications to make sure the application user interface same irrespective of device size with example.
To create a new project in iOS open Xcode from /Applications folder directory. Once we open Xcode the welcome window will open like as shown below. In the welcome window click on the second option “Create a new Xcode Project” or choose File à New à Project.
After selecting “Create a new Xcode project” a new window will open in that we need to choose a template.
The new Xcode window will contain several built-in app templates to implement common types of iOS apps like page-based apps, tab-based apps, games, table-view apps, etc. These templates are having a pre-configured interface and source code files.
For this iOS Auto Layouts example, we will use most basic template “Single View Application”. To select this one, Go to the iOS section on the left side à select Application à In the main area of dialog select “Single View Application” and then click on next button like as shown below.
After click Next we will get a window like as shown below. In this, we need to mention project name and other details for our application.
Product Name: “Auto Layout in iOS”
The name whatever we enter in the Product Name section will be used for the project and app.
Organization Name: “Tutlane”
You can enter the name of your organization or your own name or you can leave it as blank.
Organization Identifier: “com.developersociety”
Enter your organization identifier in case if you don't have any organization identifier enter com.example.
Bundle Identifier: This value will generate automatically based on the values we entered in the Product Name and Organization Identifier.
Select language type as “Swift” because we are going to develop applications using swift.
Choose Devices options as Universal it means that one application is for all Apple devices in case if you have any specific requirement to run an app only for iPad then you can choose the iPad option to make your application restricted to run only on iPad devices.
Use Core Data: Unselected
This option is used for database operations. In case if you have any database related operations in your application select this option otherwise unselect the option.
Include Unit Tests: Unselected
In case if you need unit tests for your application then select this option otherwise unselect it.
Include UI Tests: Unselected
In case if you need UI tests for your application then select this option otherwise unselect it.
Once you finished entering all the options then click on the Next button like as shown below.
Once we click on the Next button new dialog will open in that we need to select the location to save our project. Once you select the location to save the project then click on Create button like as shown below.
After clicking on the Create button, the Xcode will create and open a new project. In our project, Main.storyboard and ViewController.swift are the main files that we used to design app user interface and to maintain source code.
Main.storyboard - Its visual interface editor and we will use this file to design our app user interface
ViewController.swift - It contains the source code of our application and we use this file to write any code related to our app.
Now in project select Main.storyboard file, the Xcode will open visual interface editor like as shown below.
Now select ViewController.swift file in your project that view will be like as shown below.
Now we will add controls to our application for that open Object Library. The Object Library will appear at the bottom of Xcode on the right side. In case if you don't find Object library, click on the button which is in the third position from the left in the library selector bar like as shown below. (Alternatively, you can choose View à Utilities à Show Object Library.)
As we discussed our user interface will be in Main.storyboard file so open Main.storyboard file. Now in Object library search for Label in Filter field then drag and drop Label into Main.storyboard ViewController like as shown below same way add another 3 label controls in Main.storyboard file.
Now we will run and check the output of the application. To run an application, select the required simulator (Here we selected iPhone 6s Plus) and click on the Play button, located at the top-left corner of the Xcode toolbar like as shown below.
If you observe below output only two labels are appearing this is the main problem if we can’t set the auto layout.
Now we will set the layout properties for labels, click on left side bottom label and set the constraint like as shown below.
Now we will set the layout for the right side bottom label for that click on label and set the constraints.
Now we will set the layout for right side top label for that click on the label and set the constraint.
In the same way, we will set the layout constraints for the label which is in the top left side.
Now again run the application our app output will be like as shown below and all our labels are appearing within the screen because of using auto layout constraints.
Now change the orientation of the phone automatically our app labels will get adjusted to screen size like as shown below. In case if you are checking in the system click on the CMD button and then press the left arrow to change the orientation.
This is how we can use iOS auto layouts in swift applications to make our app screens same in all the devices.