MattyG MattyG - 8 months ago 127
iOS Question

UIView autoresizingMask - Interface Builder to Code - Programmatically create struts and springs

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.

, etc).


When setting the autoresizing mask for a view, use a bitwise inclusive OR (|) to specify springs and struts.

  • Springs are represented by specifying a mask:

    • vertical spring: UIViewAutoresizingFlexibleHeight

    • horizontal spring: UIViewAutoresizingFlexibleWidth

  • Struts 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):

    • UIViewAutoresizingFlexibleLeftMargin

    • UIViewAutoresizingFlexibleRightMargin

    • UIViewAutoresizingFlexibleTopMargin

    • UIViewAutoresizingFlexibleBottomMargin

For example, a view with a horizontal spring and top and bottom struts would have the width, and left and right margins specified as flexible:

mySubview.autoresizingMask = (UIViewAutoresizingFlexibleWidth |    
                              UIViewAutoresizingFlexibleLeftMargin |  

enter image description here