Xcode hangs indefinitely when adding constraints in Interface Builder - ios

In summary, without height specified on a subview, adding constraint causes Xcode to hang.
I am using Xcode 6.3 (6D570) on Macbook Air with OSX 10.10.3, and am currently experiencing a very strange problem. I have an .xib file, which contains a view and a scroll view. Very simple, really. Here's my current setup:
Notice that the light blue/green section downwards are contained in a scroll view. In the interface builder, the bright red section does not have constraints set yet. When I try to add, for example, a vertical space constraint to the lightgray view above it, Xcode hangs.
When Xcode hangs, the Size inspector tab becomes empty and the mouse starts spinning endlessly. Here's the Size inspector screenshot when the hang happens:
After spending almost half a day, I managed to single out the problem. This problem does not happen if I add the constraints via Pin button on the bottom right corner, and specifying the height constraint of the view.
Adding constraints only work as expected if I specify / add a height constraint first. This also happens when I try to delete a constraint, for example, top space to container constraint from a label (that does not have a height constraint). I can add them just fine, but when I try to remove a constraint or delete the view, Xcode hangs.
Oh, to add more confusion: this happens frequently. As in 7 hangs out of 10.
Things I have tried:
Remaking the view on different file
Remaking the view on different project
Closing all applications except Xcode, including iOS Simulator
Restarting my computer
Things I have not tried:
Reinstalling Xcode (or rolling back to previous version).
Should I just delete Xcode and install (download) fresh? Is this possibly a bug from the new Xcode?

It seems there's a bug within Xcode 6.3.0. There's an update to 6.3.1 Apr 21, 2015 that should fix this issue:

Related

Issue in loading StoryBoard [duplicate]

I have updated by Xcode to Xcode 11 Beta and have updated the build settings from iOS 12.2 to iOS 13. Everything is working perfectly but the viewcontrollers in Storyboard appear black. The components of the viewcontrollers are present but it is difficult to preview due to the black screens
Had this same issue, eventually tracked it down by cut-pasting elements from the black screen to a brand new view controller and see which ones cause the new one to have the same error, or caused the old one to render.
After fixing it, the diff ended up being a background image on a specific UIButton.
I found that after updating to Xcode 11 if one element has an issue, it breaks the whole storyboard like your screenshot.
I had this issue last night. My UITableView was expanding too far out of the screen on the right hand side. I dragged it back into the bounds of the UIViewController parent and updated the right hand side constraint to be 0.
So check if anything goes beyond the UIViewController boundary that shouldn't.
In Xcode 12.4
After trying lots of thing, finally i resolved my issue
First close your project.
just goto finder -> Application -> Xcode -> get info -> uncheck open using Rosetta
Now, simply open your project.
Just delete any constrain in that viewcontroller and then undo the change.
Check the values for the cell heights. In opening an older project, the row height (in the TableView itself) was 0. Changing it to a positive value or deleting the value (so it defaults to automatic) fixed the issue for me.
I had the same issue, here are the steps I followed.
Clear constraints, for my case the source was from UITableView, and make sure constraints are attached to safearea not superview.
From the toolbar on the top, go to Editor > Canvas > Layout Rectangle. It is very important to repeat this step 3 times.
Once finished, quit XCode and reopen it again and everything should be fixed. I've noticed this happens when I'm switching views for different devices 8, 11, 4s.
I don't know exactly what the problem was, but I was able to solve it with the following steps.
Run 'pod install' to install all cocoapods dependencies
In Xcode: Product -> Clean Build Folder
Restart Xcode and run the project

Xcode 11 Beta - Storyboard ViewControllers Appears Black

I have updated by Xcode to Xcode 11 Beta and have updated the build settings from iOS 12.2 to iOS 13. Everything is working perfectly but the viewcontrollers in Storyboard appear black. The components of the viewcontrollers are present but it is difficult to preview due to the black screens
Had this same issue, eventually tracked it down by cut-pasting elements from the black screen to a brand new view controller and see which ones cause the new one to have the same error, or caused the old one to render.
After fixing it, the diff ended up being a background image on a specific UIButton.
I found that after updating to Xcode 11 if one element has an issue, it breaks the whole storyboard like your screenshot.
I had this issue last night. My UITableView was expanding too far out of the screen on the right hand side. I dragged it back into the bounds of the UIViewController parent and updated the right hand side constraint to be 0.
So check if anything goes beyond the UIViewController boundary that shouldn't.
In Xcode 12.4
After trying lots of thing, finally i resolved my issue
First close your project.
just goto finder -> Application -> Xcode -> get info -> uncheck open using Rosetta
Now, simply open your project.
Just delete any constrain in that viewcontroller and then undo the change.
Check the values for the cell heights. In opening an older project, the row height (in the TableView itself) was 0. Changing it to a positive value or deleting the value (so it defaults to automatic) fixed the issue for me.
I had the same issue, here are the steps I followed.
Clear constraints, for my case the source was from UITableView, and make sure constraints are attached to safearea not superview.
From the toolbar on the top, go to Editor > Canvas > Layout Rectangle. It is very important to repeat this step 3 times.
Once finished, quit XCode and reopen it again and everything should be fixed. I've noticed this happens when I'm switching views for different devices 8, 11, 4s.
I don't know exactly what the problem was, but I was able to solve it with the following steps.
Run 'pod install' to install all cocoapods dependencies
In Xcode: Product -> Clean Build Folder
Restart Xcode and run the project

The issue of Interface Builder in Xcode 8

My storyboards are created in Xcode 7. After I installed Xcode 8, all of them are constantly messed up. When I open one of them, Xcode asks me to select a device (which is a nice new feature). But then it never adjusts views' frames, so I must press "All View: Update Frames" infinite amount of times. And even this doesn't fix all "misplaced" views.
Anybody knows how to fight this problem? Or the only option is to pray that Apple fixes it at some point?
UPDATE 1
It happens every time I open IB, even if I've fixed frames previously.
UPDATE 2
When my colleague fixes same storyboards on his computer, changes stay. No idea what makes my Xcode so special.
I figured out the following workaround
First, set width and height for your view to the values it will calculate on selected device in your storyboard, then preserve superview margins.
This worked for me
Xcode 8.0 has the bug, that it does not save the rects from the storyboard xml-s. So if you fix misplaced views in Xcode 8.0, the problem is gone for as long as the storyboard stays in RAM. When the storyboard is closed and re-read from a file, the issue appears again. (Actually Xcode 7.0 had exactly the same problem in the beginning.)
Xcode 8.1 beta 3 (the most recent version at the time of this writing) fixes this issue:
frames are not 1000x1000, but they stay as they were.

In xcode 6.1, interface builder deleting ui elements

I have a view with some tableviews and some collection views and also some buttons and labels.
I'm not sure if this is new with Xcode 6.1 because I have not worked on the ui aspect of this project for some time. However, when I try to resize just about anything in the view, my tableviews and collection views, and possibly some other elements I am not noticing, get deleted. Specifically, it seems their frame or rect propertied get deleted.
To be clear, this only occurs when I attempt to resize the element by dragging the sides in interface builder. If I resize them by changing the numbers directly either in the IB sidebar or in the xml, this does not happen.
I'm wondering if this is a bug in Xcode or if I have done something to cause this behavior which I can change.
Thanks!
I acheived a fix, at least for this project by turning off auto layout in "show the file inspector" -> "interface builder document"
I have never used this feature in the past so I do not know if it was on in the past but I am wondering if the new Xcode version turns it on by default where the others left it off.
It may also be possible that it has always been on but there is a bug in the feature in the new version.
This fixed the issue for me, at least in this particular project and at least for now. I hope others find this useful.
From here it looks like a bug in Xcode 6.1.
I created a clean project and the behaviour is the same on my machine:
https://github.com/nasht/Xcode6ConstraintTest.git
Resizing one view makes others disappear. Changing a layout constraint from a = to <= or >= also seems to do it.
I've raised a bug with Apple. Suggest you do the same.
workaround: You can install xcode 6.01 and use interface builder from there. You can still compile and run your code using xcode 6.1 if you're relying on xcode 6.1 specific features. (you'll need to rename your xcode.app so you can run both instances. ) It's ugly, but it works.
I found that it's fixed on the next version of xcode (6.1.1)
same problem, yosemit and xocde 6.1. I can resize some view only if i disable autolayout.
I think I ran into this 'problem'. I believe this was because one of the constraints I had was not setup correctly.
What OS X Version are you on? I updated to Yosemite today and 6.1 along with it. When I would resize a label my other elements were not getting deleted but instead getting resized and repositioned. The width / height would change to 0,0 and the x / y would change to 0,0 as well.
I was noticing other issues with Yosemite so went ahead and did a time capsule restore back to Mavericks and Xcode 6.0
I had the same problem in universal app; iphone works fine and the ipad doesnt work.
I'm using xCode 6.1 and OSX Yosemite
My app supports iOS7 and iOS8 and i had the same problem on iOS7 on iPad version only
Fix:
So i fixed it by setting Simulated Metrics in interface builder by
Size = iPad Full Screen and Orientation by Landscape or Portrait
I have got the same kind of problem with Xcode 6.1 and Yosemite :
I have created a view that I have added to the main view, so it appears like a sub view in the View Controller Scene.
Then I resize this subview to 320 x 568. My program works. It corresponds to the program dropit of Stanford CS193P Lecture 9.
I save the project, close it and reopen it : the subview has its width and height set to 0 !
I tried to open the project dropit of Lecture 8 that is quite the same, which was working before (I think in Xcode 6) and same problem ! First I thought that tapping (related to the subview) was not working but found out that tapping was not working because I was tapping on a subview which has its width and height set to 0 !
I have reset the size class wCompact hAny to which all the UIElements are added. and got corrected.

UIStepper Not Visible

Via storyboard in XCode 5.0.1, I've added a simple UIStepper in my ViewController. However, I've noticed that when I place it up towards the top of my screen where I need it it doesn't actually appear in the simulator nor on the device. I thought I was going crazy so I created a test app outside of my regular working project to prove I wasn't--as it turns out, I'm not. I placed it in a simple view and noticed the bottom edge of it up at the very top of the view. (I wasn't seeing it at all in my original project because I had a nav-bar at the top.)
The following images show it as it appears in the storyboard (UIStepper visible) and on the simulator/device:
(Storyboard)
(Simulator)
Two questions: Is this a bug? Other than guessing where it should appear and setting its frame origin manually what would be the recommended approach to ensuring my UIStepper shows up as I've placed it in the storyboard? (I'm afraid manually setting the frame origin would break or mis-align in future iOS versions.)

Resources