I’ve laid out some subviews with Interface Builder, but I’d like to do it in code instead.
I’ve read the UIView docs about setting the view.autoresizingMask property. I’m looking for a logical explanation of how to translate the struts and springs by using the various masks offered (e.g., UIViewAutoresizingFlexibleLeftMargin, etc).
When setting the autoresizing mask for a view, use a bitwise inclusive OR (
|) (Objective-C), or an array (Swift 2, 3, 4) to specify springs and struts.Springs are represented by specifying a mask (Objective-C or Swift, respectively):
vertical spring:
UIViewAutoresizingFlexibleHeightor.flexibleHeighthorizontal spring:
UIViewAutoresizingFlexibleWidthor.flexibleWidthStruts are represented by the lack of one of the four ‘flexible margin’ masks (i.e. if a strut does not exist, the mask for that margin is specified):
UIViewAutoresizingFlexibleLeftMarginor.flexibleLeftMarginUIViewAutoresizingFlexibleRightMarginor.flexibleRightMarginUIViewAutoresizingFlexibleTopMarginor.flexibleTopMarginUIViewAutoresizingFlexibleBottomMarginor.flexibleBottomMarginFor example, a view with a horizontal spring and top and bottom struts would have the width, and left and right margins specified as flexible:
Swift 3 and 4
Swift 2
Swift 1.2
Objective-C