ios - 如何以编程方式使用 UIView autoresizingMask 属性?

我已经使用 Interface Builder 布置了一些 subview ,但我想改为在代码中完成。

我已阅读 UIView docs关于设置 view.autoresizingMask 属性。我正在寻找关于如何使用提供的各种掩码(例如 UIViewAutoresizingFlexibleLeftMargin 等)翻译 strutssprings 的逻辑解释.

最佳答案

在为 View 设置自动调整大小掩码时,使用按位包含 OR (|) (Objective-C) 或数组 (Swift 2, 3, 4) 来指定 Spring struts

  • Spring 通过指定掩码来表示(分别为 Objective-C 或 Swift):

    • 垂直 Spring :UIViewAutoresizingFlexibleHeight.flexibleHeight

    • 水平 Spring :UIViewAutoresizingFlexibleWidth.flexibleWidth

  • Struts 表示缺少四个“灵活边距”掩码之一(即,如果支柱不存在,则指定该边距的掩码):

    • UIViewAutoresizingFlexibleLeftMargin.flexibleLeftMargin

    • UIViewAutoresizingFlexibleRightMargin.flexibleRightMargin

    • UIViewAutoresizingFlexibleTopMargin.flexibleTopMargin

    • UIViewAutoresizingFlexibleBottomMargin.flexibleBottomMargin

例如,具有水平 Spring 顶部和底部支柱的 View 将具有指定为灵活的宽度和左右边距:

Swift 3 和 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);

https://stackoverflow.com/questions/10468389/

相关文章:

ios - 有没有办法在用户已经在 iOS 上拒绝相机访问权限后向他们询问?

objective-c - 每个 ivar 都必须是一个属性吗?

ios - 协议(protocol)和委托(delegate)之间的区别?

objective-c - 通过索引访问 NSMutableDictionary 中的对象

ios - 子类化时混合objective-c和swift

objective-c - 添加/删除带有动画的 UITableViewCell?

ios - info.plist中的 "Application Requires iPhone En

objective-c - 获取最顶层的 UIViewController

ios - 以编程方式获取应用程序支持文件夹的路径

ios - writeToFile:atomically: atomically 是什么意思?