Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to arrange UI elements so they fit in all screen sizes in iOS

Tags:

xcode

ios

I've been struggling with this issue for a while and hours of research and experimentation didn't produce any acceptable results.

I have a login screen that contains a lot of UI elements. The view looks great on iphone 7 and 6 variations but when I test it on SE or 4S the constraints fail to position the elements so they fit nicely on their tiny screen. Simply there is not enough room. I read that I must support all screen sizes but at this point I am not sure how can I get all the ui elements to fit in the smaller screens. I watched hours of youtube videos and tried all possible ways including a vertical stack view but no matter what I try, it either looks good on 7 and 6 but terrible on SE/4S or vice versa (good on SE/4S but way too much white space on 7/6).

At this point I am not sure what else I can do. I know it is not possible to design a UI just for a specific screen size and vary for traits is not what I need because I only intend to support vertical orientation.

Any help or suggestion will be greatly appreciated.

enter image description here enter image description here enter image description here

like image 385
Rob8861 Avatar asked May 05 '17 19:05

Rob8861


1 Answers

As you have said in your own comment, you can restrict the device sizes indirectly by restricting the iOS version. However that is not a good solution: If you are creating the app for commercial reasons that will unnecessarily restrict your market (there are a lot of 4S users out there); If you are learning app development, now is a good time to work out how to manage GUI layout problems properly (there will always be a wide range of display sizes to cope with).

There are several tools available to assist:

Auto Layout

As others have said in comments, Auto Layout can help a lot. Don't just use it to position things though, but also to resize them to make best use of the available space.

Understanding Auto Layout (Apple)

Size Classes

Size Classes allow you to use different constraints and turn on or off controls depending on the general size and orientation of your user's device. For example, where space is restricted you could hide individual controls and instead display a single control to take the user to them elsewhere (another view or a popover for example).

Size-Class-Specific Layout (Apple)

Scroll Views

You can make part or all of your GUI a scroll view that on larger devices will show all the controls whilst on smaller devices initially show just the top ones but still give your users access to the others (don't forget to flash the scroll bars when the view first appears to show them that there is more to see though).

Separate Storyboards

Although you have not mentioned iPad support, you can also specify completely separate storyboards to help layout universal apps.

See this SO answer and it's linked reference for details.

like image 154
Ali Beadle Avatar answered Nov 15 '22 05:11

Ali Beadle