UIViews not displayed properly after disabling size classes - ios

After trying a lot i am not able to figure out why my UIView is not being displayed same on different device. Initially i was using auto-layout and size classes but after having a lot of issues with it my senior told me to not use auto layout and disable size classes. So i did that but my view appears differently on 4s, 5s and 6s. This is how i placed all my elements in storyboard.
After i run the project on iPhone 4s it looks like.
On 5s (this is how it is supposed to look like on all devices):
On 6s (please ignore the screen dimmer effect):
Can someone please point out where am i going wrong. Thanks.
P.S: I was told to create a new project and start all over again, but the problem is i have already created some more view and there class file and i don't want to start all over again, also want to know what is causing this issue.

Go on use size classes and then disable it while disabling it you will get an option
Keep size classes for, Select iPhone and you are ready to go.

Related

How do you build apps for all iOS devices?

I have an app that is nearing completion. However, I don't know how to finish it so it will look good on all iOS devices. It's a portrait only app, and it is the same on all devices (bigger screens don't show anything extra or different from smaller devices).
How do I make constraints that will work on all devices? I know there are different size classes that Xcode has, but it seems tedious to go to each class and add specific constraints.
You should use Autolayout for all resizing of your UI. But if you still want to go with this, I found this thread What setting determines whether an app gets scaled for iPhone 6 and 6plus?
Again, try to use Autolayout, add constraints its very easy. If you wish to change your mind go through the tutorial and add constraints https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2

App not displaying properly on iphone6

I am having an issue with running my project on the device. Here are two pictures. The first one shows what the project looks like when I run it on the simulator. The second one is the same project run on the device:
As you can see in the first screenshot, I am using Auto Layout and Size classes. On the attributes Inspector I have the size set to iPhone 4.7-inch, but if I set to to "inferred" the same thing happens. I have done a fair bit of research on the web to see if I can find the solution but to no avail. I am fairly new so it could be something simple. Any help appreciated.
Update: I have set the size to inferred and turned off size classes and auto layout and I had resize all the buttons from 100 pixels to 80 pixels and now it looks fine on the device but I get the opposite problem on the simulator which was fine then. Is this an issue to do with iPhone 6 plus?
See next screenshot. On the left the storyboard and on the right the simulator.
Have you set attribute for it..? Because you are using size class.
Check it. If not set then set it for all objects.

Fit an iOS application developed for 4 inch screen to 3.5 inch screen

I am writing my first iOS app and just realized a serious problem. I was using storyboard for a 4 inch iphone screen and forgot to take 3.5 inch screens into consideration. :( It seems that this could be relatively fixed easily if I have done everything in code. But unfortunately, I have used storyboard for some parts of my app. It seems that the table views are fit perfectly but the views with some fixed subviews fail. Could anyone please give me some suggestions on how to fix this? Any help is appreciated. Thank you very much!
This is exactly what auto layout exists for. You can create a UI, using storyboards, that works perfectly for both screen sizes. You can toggle a setting in the storyboard to have it display the two different screen sizes, so you can easily see how your views will move and resize. There is also a preview mode for the storyboard that lets you see how it will look. It also lets you see how it will look on both iOS 6 and iOS 7, so that you can make sure that your UI looks good on both assuming you still support iOS 6.
If you had done this in code, it would probably have been a whole lot more complicated, especially since you have to run it each time to see what changes when you adjust your code. Graphical layout tools such as Interface Builder (what allows you to view and edit storyboards and XIB files) make supporting multiple screen sizes very easy. Plus, generally it's not too hard to make a screen designed for a 4" screen work with a 3.5" screen, in some cases you just have to make things fit a little closer together, or perhaps have the content in a scroll view.

iOS XCode Storyboard controls moved and now look strange in simulator

I am following the course on iOS through iTunes university and working on the calculator project. I moved the controls on the storyboard to make room for another control at the top. Everything looks fine on the storyboard but when run in the simulator, controls are bunch up, on top of each other, and some are clearly off the top of the simulator screen. This leads to the following very related questions.
How does one move controls around on the storyboard? I went to the size inspector of each control (buttons in my case) and changed the 'Y' value (increased it by 10). I did this for each control. I didn't think about it as I was doing it because as I said, all looks fine on the storyboard. Is there a better way to move controls around? I could not figure out how to grab more than one control at a time and move them. Grabbing all and moving or all but one and moving would have been ideal.
I anticipate someone is going to say, "We need more info. " How do I show the storyboard? Is there a xml file somewhere? How is the storyboard saved? How should I show the results of the simulator?
In general, what the heck is going on? Why would things look so different in the simulator?
Is there a better forum/group to ask newbie questions about iOS programming?
My specs are these:
XCode 4.5.2
Ios simulator versions set to 6.0 and iPhone
Any other info needed? Thanks in advance,
Dave
Try setting your simulated device size to 'freeform' instead of 'inferred'. This screen is a bit smaller so the controls are no longer overlapping. The latest xcode sets it by default to ios6 (screen size of iPhone 5)
edit For a better insight in xcode IDE, please refer to the documentation provided by apple (includes screenshots for clarity)
https://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/000-About_Xcode/about.html#//apple_ref/doc/uid/TP40010215

iOS storyboard layout

I am working on an app and have come into some graphical problems when designing my app.
First off, my app is only support by iPhone. My current storyboard is using the iPhone 5 as the screen size, so everything screws up when I try to run in iPhone 4 and 4S. Is there a way to make multiple storyboards for each different screen size? Or do you all have another solution?
Thanks!
- Brad
There is a way to make different storyboards for separate screen sizes, but another way to do it is like this:
Whenever you add objects to your views, be sure to have them aligned to something (using constraints). If all items are relative to other items, then most likely the layout will be fine on all devices. Also, if you find that your controls start overlapping, then perhaps you ran out of room. In that case simply add a scroll view to your layout, and then put the controls on top of it. Then, it won't scroll on the larger screens because all controls are shown, but on smaller devices it will allow you to scroll down to see the rest of the objects.
Good luck.
There is a small button in the lower right hand corner that lets you toggle between 3.5" and 4" screen sizes so you can see how it will look on different devices. By using Auto Layout introduced in iOS 6 you can make sure to set up your constraints so that your UI looks good on both older and newer iPhones.

Resources