是否可以将autoresizing mask与autolayout混合使用?

App*_*ppu 2 constraints ios autoresizingmask autolayout adaptive-layout

我相信在使用Autolayout管理UI时,使用自动调整进行定向更改会很好.

很多程序员同时推荐两者兼顾,但据我所知,它应该没问题.

因为Autoresizingmask易于使用.

我认为autoresizing mask本身就变成了我认为的约束

translatesAutoresizingMaskIntoConstraints

纠正我如果我错了

如果可以或不好可以解释一下为什么?

agi*_*007 6

据我所知,将autolayout和autoresizingmasks一起使用是绝对可以的.您不想做的是将自动布局约束添加到您正在使用自动调整遮罩来管理布局的视图.自动调整掩码的一般用例是为视图添加视图,并希望将其固定为top,bottom,leading和trailing.在那种情况下它很简单

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

请注意,与添加每个约束相比,这更容易.

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

一起使用时的重要区别.

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