How to use UIView autoresizingMask property programmatically?

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: UIViewAutoresizingFlexibleHeight or .flexibleHeight

    • horizontal spring: UIViewAutoresizingFlexibleWidth or .flexibleWidth

  • 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 or .flexibleLeftMargin

    • UIViewAutoresizingFlexibleRightMargin or .flexibleRightMargin

    • UIViewAutoresizingFlexibleTopMargin or .flexibleTopMargin

    • UIViewAutoresizingFlexibleBottomMargin or .flexibleBottomMargin

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:

Swift 3 and 4

mySubview.autoresizingMask = [.flexibleWidth, .flexibleLeftMargin, .flexibleRightMargin]

Swift 2

mySubview.autoresizingMask = [.FlexibleWidth, .FlexibleLeftMargin, .FlexibleRightMargin]

Swift 1.2

mySubview.autoresizingMask = .FlexibleWidth | .FlexibleLeftMargin | .FlexibleRightMargin

Objective-C

mySubview.autoresizingMask = (UIViewAutoresizingFlexibleWidth |    
                              UIViewAutoresizingFlexibleLeftMargin |  
                              UIViewAutoresizingFlexibleRightMargin);

enter image description here

Leave a Comment