可以将自动调整大小掩码与自动布局混合使用吗?
Is it okay to mix autoresizing mask with autolayout?
我相信在使用自动布局管理 UI 时,使用自动调整方向更改会很好。
这么多程序员同时反对这两个,但据我了解应该没问题。
因为 Autoresizingmask 很容易玩。
我认为自动调整掩码本身变成了约束,我相信
translatesAutoresizingMaskIntoConstraints
如有错误请指正
是否可以,能否深入解释一下原因?
据我所知,同时使用 autolayout 和 autoresizingmasks 绝对没问题。您不想做的是将自动布局约束添加到您正在使用自动调整大小掩码来管理布局的视图。自动调整蒙版大小的一般用例是向视图添加视图并希望将其固定在顶部、底部、前导和尾部。在那种情况下,它只是
let pinnedToSuper = UIView(frame: self.view.bounds)
//all views default to .translatesAutoresizingMaskIntoConstraints if added programmatically
pinnedToSuper.autoresizingMask = [.flexibleWidth,.flexibleHeight]
self.view.addSubview(pinnedToSuper)
注意这比添加每个约束要容易得多。
在 autolayout autoresizing masks 之前 iOS 必须帮助布局。注意自动调整大小的蒙版也称为弹簧和 struts。一个示例用例自动调整蒙版分解是,如果您希望视图保持完美的正方形(或制作圆形)保持纵横比并在所有方向上调整视图的大小。在这种情况下,您必须在 layoutSubviews 中添加代码以根据父边界手动调整视图大小。您可以看到这可能会变得乏味,尤其是当您要避开由自动布局单独处理的视图时。这可能就是为什么在同时使用两者时要小心的原因。我倾向于在简单的情况下使用它,例如添加一个坚持父视图边界的视图。
一起使用时的重要区别。
您应该避免尝试将自动布局约束添加到您正在使用自动调整大小蒙版以尝试混合它们并实现布局的视图,因为您可能会得到没有实际效果的冲突约束。但是,您可以将自动布局约束添加到具有由自动调整大小掩码控制的子视图的视图,并且不应该有任何问题。这是我的典型用例。我希望这对您如何使用它有所帮助。
我相信在使用自动布局管理 UI 时,使用自动调整方向更改会很好。
这么多程序员同时反对这两个,但据我了解应该没问题。
因为 Autoresizingmask 很容易玩。
我认为自动调整掩码本身变成了约束,我相信
translatesAutoresizingMaskIntoConstraints
如有错误请指正
是否可以,能否深入解释一下原因?
据我所知,同时使用 autolayout 和 autoresizingmasks 绝对没问题。您不想做的是将自动布局约束添加到您正在使用自动调整大小掩码来管理布局的视图。自动调整蒙版大小的一般用例是向视图添加视图并希望将其固定在顶部、底部、前导和尾部。在那种情况下,它只是
let pinnedToSuper = UIView(frame: self.view.bounds)
//all views default to .translatesAutoresizingMaskIntoConstraints if added programmatically
pinnedToSuper.autoresizingMask = [.flexibleWidth,.flexibleHeight]
self.view.addSubview(pinnedToSuper)
注意这比添加每个约束要容易得多。
在 autolayout autoresizing masks 之前 iOS 必须帮助布局。注意自动调整大小的蒙版也称为弹簧和 struts。一个示例用例自动调整蒙版分解是,如果您希望视图保持完美的正方形(或制作圆形)保持纵横比并在所有方向上调整视图的大小。在这种情况下,您必须在 layoutSubviews 中添加代码以根据父边界手动调整视图大小。您可以看到这可能会变得乏味,尤其是当您要避开由自动布局单独处理的视图时。这可能就是为什么在同时使用两者时要小心的原因。我倾向于在简单的情况下使用它,例如添加一个坚持父视图边界的视图。
一起使用时的重要区别。
您应该避免尝试将自动布局约束添加到您正在使用自动调整大小蒙版以尝试混合它们并实现布局的视图,因为您可能会得到没有实际效果的冲突约束。但是,您可以将自动布局约束添加到具有由自动调整大小掩码控制的子视图的视图,并且不应该有任何问题。这是我的典型用例。我希望这对您如何使用它有所帮助。