I need to set translatesAutoresizingMaskIntoConstraints
to NO
. By default it is set to YES
(to assist with the majority of apps that are transitioning from struts and springs to the new Auto Layout).
Is there somewhere in Xcode where the default can be changed from YES
to NO
?
Or do I have to manually set it for every view?
When u have to change the size or position of your subview. Use
(BOOL)translatesAutoresizingMaskIntoConstraints
method before you set the frame of your subview.Thats way your subview will not fight from constraints as it is default (AutoLayout) in Xcode 4.3 and later. Thanks
I'm late to this question, but the mentioned option is still missing in Xcode 5 & 6, so the question is still meaningful.
Actually, we can always set a value to any property of a view/control/object by adding a User Defined Runtime Atribute in Storyboard (Interface Builder) like the following screenshot.
And it also works for translatesAutoresizingMaskIntoConstraints. So the question could be solved.
This is a great question - and one I've tried to find an answer to myself. Sadly, it looks like there is no "quick fix". Currently, Apple considers Constraint-based layout Opt-in - even naming a section of the
UIView
Class Reference:But that Opt-in is not global. I presume this is because not everything looks good if you just turn Springs & Struts into Constraints. Some UI elements break, or you would get a ton of unsatisfiable constraints errors.
I can think of one possible solution - I have not tried it myself, but you could make a category on
UIView
that sets allUIView
objects to returnNO
for- (BOOL)translatesAutoresizingMaskIntoConstraints
. While I do not know what this would break, it would globally settranslatesAutoresizingMaskIntoConstraints
toNO
.Here is a good introduction to Categories if you want to learn more about them!
According to the documentation, this property is automatically set to
NO
if the view is added through Interface Builder.https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instp/UIView/translatesAutoresizingMaskIntoConstraints