Is the "Add Missing Constraints" function in the Xcode User Interface Builder known to work properly, or should this functionality be avoided?
I personally avoid it. Or more precisely I fire it to see what is proposed but then immediately undo as it often add extraneous constraints (they are not random, but the logic may be hard to understand).
I declare as many constraints as possible in IB, much easier than programmatically.
I may also create an IBOutlet for some constraints when I need to adapt (usually changing constant) in certain circumstances (such as for very small size screen).
"height is ambiguous" or "vertical position is ambiguous",
That is often because the reference element (to which the constraint is defined), is missing a vertical position.
Is there a specific technique that should be used to handle constraints when building a UI?
This is not a specific technic, just the way I proceed.
I try to select "reference" elements that I position in the top view.
Then other elements will be constrained relative to it.
It may also be useful to create subviews that will hold some related objects.
Then constraints are defined for the subview and objects inside are constrained with respect to their subview.
A last thing, when there are many constraints, I give them an ID (#01, #02) to ease debug.
Could you detail a case where you cannot make it work ?