marmor marmor - 5 months ago 42
iOS Question

iOS: disable UI mirroring in XIB


iOS 6
there's a new "feature" that mirrors the UI elements in the xib file if the user is on right-to-left locale (hebrew, arabic).

It completely messes up my interface.

Is there a way to disable it without disabling auto-layout?


Horizontal constraints have the "Direction" option in Interface Builder. By default it's set to "Leading to Trailing" which causes the mirroring. You can set it to "Left to Right" to disable the mirroring.

Note, changing all the constraints by editing storyboard/xib files causes exceptions or messed up layout, it seems that Interface Builder creates / changes some additional constraints when changing the direction setting.

So the faster way I found to change the existing xib/storyboard, is to select all the constraints with the "Leading to Trailing" set, change them all together to "Left to Right" and then check if some new horizontal constraints were automatically created - their direction should be changed to "Left to Right" as well.