Xcode Interface Builder - views are vertically ambiguous - ios

Xcode is telling me that 8 views are vertically ambiguous, but it's not pointing to which view controller in my storyboard is actually causing the problem. I've clicked the warning message which just takes me to the storyboard and tried expanding all 20 something view controllers in the document outline, and none are showing that little warning indicator.
How can I determine the offending view controller?

This might be a pretty ugly way of figuring out what views are causing the warnings but I was having the same problem. What I did was in the Issue Navigator, right click on the warning and click "reveal in log". In the log, xcode gave me the warning statements followed by a semicolon and a value. Then I opened the storyboard in TextEdit to see the XML of the storyboard. I searched the values and found that they were ID numbers for views in the storyboard. From there I was able to figure out what views in what view controllers caused the problems. Hope that helps.

if you open the left panel on storyboard (Document Outline) you will see a red circle with arrow near the ambiguous view name. click it to see more details.
Here is an example with the red circle with arrow.
Those details may include another such red circle with arrow that will make suggestions.

I got this silly issue, too. I selected all the elements, cut them, and pasted them again, then the warning disappeared. Really sucks.....

Selecting everything and turning auto layout to off and then back to on, in the file inspector pane in the storyboard, solved it for me

Related

Xcode 8 Adding Layout Margins Crash

When I try to add layout margins to a label on a TableViewCell, using the right panel on Xcode, I try to add Explicit Margins (top, Left, Bottom, Right). But, as soon as I input a number value, or tap the arrow to change the value, Xcode crashes.
I've attached a photo to show the panel I am trying to add the layout margins in, and where it crashes.
Any ideas why it wont let me adjust the margins?
try to clear the constraints, connect/ reconnect the outlet and apply new constraints.
Had that problem. Its Xcode bug. Already fixed, so don't worry :)
I was facing similar problem.
The answer that I found and which I used in real project (but for UICollectionView) was to get the outlet of CollectionViewFlowLayout and to define the margins (line spacing and item spacing) by myself in code.
For example
collectionViewFlowLayout.minimumLineSpacing = getCollectionViewWidth() * 0.05
Where getCollectionViewWidth() is a function, that returns the size of collection view (for different screens it will be different) and 0.05 is just random coefficient.
I hope it may someway help you, you can feel free to ask anything else.
If you have crash when you add margins on any view in your storyboard you can try to get their outlets as well and to redefine their frames. It's kinda bad style, but if you won't figure out the problem its the only one I can recommend to you and which I used myself.
Also try to Clean project by clicking Product - Clean in you task bar when in X-Code.
Clear all the constraints and try from applying one by one. That way you can resolve this issue.
Please remove all the constraint applied and connected to the outlet. And Try to apply new constraints.
Some time we delete Outlet from you files .h or .m or swift file which was connected to view in Storyboard or xibs at that time this problem occurs.
Clearing all constraints is the way to go. Look around every nook and cranny and right click every little thing in both your Main.storyboard and the ViewControllerScene menu to its immediate left. If you can get the formatting back to its most base level your constraints will work fine!
Clear all the constraints and try from applying one by one.and take .xib file and connecte with Table view Cell
Xcode stores some user state information inside the Xcode project file, which is really a folder. That state information might have become corrupted. You can normally throw away everything inside your .xcodeproj folder except the project.pbxproj file. This might fix your problem.
Open up the folder containing your .xcodeproj file. Right-click the .xcodeproj file and choose Show Package Contents. Then throw away everything except the project.pbxproj file.
If you know what an Xcode workspace is, and you're actually making use of it, you might not have a project.xcworkspace file to throw away, or you might not want to throw it away. But if you don't know what an Xcode workspace is, then you're not using it so you can just throw away project.xcworkspace. Xcode will recreate it automatically.
see This Link

Segmented disable?

I'm configuring my UI, in my first view all work perfect, but on my second view have a problem with segment button.
And don't apear on my view. I can drag but still looks "disable" and generate warning "Position is ambiguous for segmented control"
What happen?
This may solve your issue. Check the option "installed" in IB. see below gif image
Try to select "Favs" controller in your storyboard, then select "Editor -> Resolve Autolayout Issues -> Reset to suggested constraints" from Xcode upper menu.

Tabbed icons & Keyboard not appearing in text field in Swift

I am working in Xcode 6 in swift. I am using the default UITabBarItem tab icons which are appearing in Main.storyboard, but are not appearing in the simulator (I am using the default images -- nothing uploaded). In addition, the keyboard is not appearing after touching into a text field. I am getting the following error:
Could not load the " " image referenced from a nib in the bundle with identifier "Project Name".
Note that this error is only happened after a segue into the tab bar controller. It is working correctly in prior views.
It looks like you have a bad layout which is pushing the tab icons off the screen. Suggest you use the Resolve AutoLayout Issues and check it out. Can't comment on the second issue without the code.
Just clear the constraints and then click on the Add Missing Constraints

Wiring up Outlet Collection Trouble

From what I can tell there are some challenges people are having in XCode6 in terms of wiring up outlet collections. I just wanted to see if i'm doing this right or what I need to do correctly! I reviewed here Can't hook up an outlet collection in Xcode 6 using storyboard as well as other areas, but I wanted to be more basic about this first.
I have 7 images on a screen. I'd like to iterate through all of them in a loop or something. I read an outlet collection would be a sensible way to do this. To create an outlet collection, I am doing this:
While splitting the screen (storyboard on left, assistant editor on right) I control+click on one of my 7 images, and drag it into the view controller code on the right. This will prompt me to create an outlet, or outlet collection (I select outlet collection).
Now that this is done, a circle appears in the left margin next to this variable indicating that the image is associated with that variable. If I hover over the circle, the first image lights up.
What you're supposed to do (can someone confirm this please??) is you just hover your mouse over the circle, and a + symbol appears, and all you do is hold down the left mouse button, and drag over to another image (for example image#2), and it should automatically add that to the collection. The idea is to simply drag to each image so they are all added.
Is that right in step #3 above? Is this the normal way you would add items to a collection? Drag from the + to the image within your controller? For me, when I do this, the line appears, but it doesn't seem to respond to connecting the line to anything. I just hover it over the images, and it doesn't highlight the image or select it or anything, and when I let go, nothing happens.
I'm still somewhat new to this - what am I doing wrong?
Thanks so much for your patience/help!
OK I had the same issue and I think I have just found a workaround
1) Do steps one and 2 with the first image
2) Now repeat exactly what you did using the second image - drag and drop just below the first outlet collection (this would simply create a second outlet collection use exactly the same name )
3) Now Xcode won't like it as you have two outletCollections with the same name. Now comment out the first one
4) Now you only have one outlet collection. And it would be wired up to both your images. confirm it by hovering your mouse pointer over the little 'circle' next to the IBOutlet to see your images being highlighted.
This seems to work for me. So hope this helps :-)
There is an error with Xcode and Interface Builder that causes problems with outlet collections. You are doing it right, Xcode is problematic.
A workaround is to:
Go to your DerivedData folder (Xcode preferences -> locations)
Clean build folder from the Product menu while holding option (alt) button
Quit Xcode
Delete the folder starting with your app's name in the derived data folder
Go to your xcodeproj file, right click it, show package contents.
Delete the xcuserdata folder (warning: don't touch the others!)
Open Xcode again.
When you delete user data, window positions etc. will be reset to defaults and breakpoints will be deleted. Your project should work smoother (after a few seconds of re-indexing) and outlet collections should work properly.
I have had some success by just changing my workflow as follows (no need to restart Xcode).
First, create the outlets in code in the controller class file.
Second, drag from the objects (in the outline view of IB) to the controller, or back (for actions).
This has always worked without fail. It is slightly more effort, but actually negligible. Definitely an Xcode bug.

Why storyboard constraints are changed automatically?

Friends my project is in ending state ,but even in my backup all constraints are changed i,don't know how and why ,but if i run all is available but in storyboard can't see any thing.
it is storyboard image :
it is simulator image :
how i have to solve this ,i need my previous constraints how its changed automatically ?
No issues, you can get your storyboard clean and restored.
Goto your storyboard, select the particular view controller/ table view controller.
Choose the file inspector on the right side, goto Interface Builder Document section uncheck Use Size Classes
Proceed by choosing Disable Size Classes option from the dialog popup. Find that all your views have been visible now, and there is the possibility of constraint warnings.
Click on the yellow mark to the right side of your view controller, update the constraints one by one.
At the end, your previous viewcontroller/tableviewcontroller state is restored.
If you have more than one viewcontroller/tableviewcontroller has this problem, do the above steps for all.
Note: Don't forget to check the Use Size Classes back.
Happy coding :)

Resources