2

我相信在使用 Autolayout 管理 UI 时,使用自动调整大小来改变方向会很好。

这么多程序员同时反对两者,但据我了解应该没问题。

因为 Autoresizingmask 很容易上手。

我认为自动调整掩码本身实际上会变成约束我相信

将AutoresizingMask 转换为约束

纠正我如果我错了

如果可以或不可以,有人可以深入解释为什么吗?

4

1 回答 1

8

据我所知,同时使用自动布局和自动调整蒙版绝对没问题。您不想做的是将自动布局约束添加到您正在使用自动调整掩码来管理布局的视图中。自动调整遮罩大小的一般用例是将视图添加到视图并希望将其固定在顶部、底部、前导和尾随。在这种情况下,它只是

let pinnedToSuper = UIView(frame: self.view.bounds)
//all views default to .translatesAutoresizingMaskIntoConstraints if added programmatically
pinnedToSuper.autoresizingMask = [.flexibleWidth,.flexibleHeight]
self.view.addSubview(pinnedToSuper)

请注意,与添加每个约束相比,这要容易得多。

在自动布局之前,自动调整掩码大小是 iOS 必须帮助布局的全部。抬头自动调整大小的遮罩也称为弹簧和支柱。一个示例用例自动调整蒙版分解是,如果您希望视图保持完美的正方形(或制作圆形),保持纵横比并在所有方向上调整视图的大小。在这种情况下,您必须在 layoutSubviews 中添加代码以根据父边界手动调整视图大小。您可以看到这可能会变得乏味,特别是如果您正在躲避由自动布局单独处理的视图。这可能就是为什么在使用两者时要小心的原因。我倾向于在简单的情况下使用它,例如添加一个坚持超级视图边界的视图。

一起使用时的重要区别。

您应该避免尝试将自动布局约束添加到您正在使用自动调整掩码以尝试混合它们并实现布局的视图,因为您可能会遇到没有实际效果的冲突约束。但是,您可以将自动布局约束添加到具有由自动调整掩码控制的子视图的视图中,并且不应该有任何问题。这是我的典型用例。我希望这可以帮助您了解如何使用它。

于 2017-03-08T03:40:36.457 回答