iosobjective-cswiftuiviewautoresizingmask

How to use UIView autoresizingMask property programmatically?


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).


Solution

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

    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