UIView的autoresizingMask有什么作用?

25

在SO和developer.apple.com上阅读了有关UIViewautoresizingMask之后,我仍然不清楚其目的。请问在什么情况下需要设置这个属性?

2个回答

29

是的,如果您不想手动调整视图大小,则通常需要设置它。请注意,它主要对子视图(即不占据整个屏幕的视图)非常有用,而不是您应用程序的主视图。

通常,视图可能需要调整大小,如果:

  • 设备旋转
  • 添加了额外的视图(例如广告)到视图中,因此现有的子视图可用空间较少。

例如,假设您有一个视图,在其中有两个按钮,一个位于左上角,另一个位于右上角。为了使按钮在从纵向转换为横向时变宽,您需要将FlexibleLeftMargin设置为右侧的按钮,FlexibleRightMargin设置为左侧的按钮。

编辑:当设备旋转或添加新的子视图时,如果看到奇怪的空洞或重叠,自动调整大小掩码也是要看的第一件事情。通常,为子视图正确设置这些掩码可以使您获得漂亮的视图,而无需手动布局子视图-但通常需要进行一些实验。

编辑2:(由于此仍在收集投票)自动调整大小掩码现在大多已被“自动布局”所取代,后者允许更灵活地约束视图的大小和位置。也就是说,在动态添加视图时,translatesAutoresizingMaskIntoConstraints偶尔仍然有用。


4
别忘了双倍高的“通话中”状态栏!你可以通过录制语音备忘录并切换到你的应用程序来轻松地复制这个状态栏。 - tc.

5

这个目的是当UIView的父视图因为大小调整、方向变化、在tableview单元格中显示编辑控件等原因而改变时,UIView可以正确地移动和调整大小。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接