在阅读了关于SO和developer.apple.comUIViewautoresizingMask后,我仍然不清楚目的是什么。在什么情况下需要设置此属性?

最佳答案

是的,如果您不想手动调整 View 的大小,通常需要进行设置。请注意,它对于 subview (即那些不能占据整个屏幕的 View )最有用,而不是应用程序的主 View 。

在以下情况下,通常可能需要调整 View 的大小:

  • 设备旋转
  • 会在 View 中添加一个额外的 View (例如,一个广告),因此现有的 subview 具有较少的可用空间。

  • 例如,假设您的 View 上有两个按钮,一个在左上角,另一个在右上角。为了在 View 从纵向过渡到横向时使按钮变宽,需要将“FlexibleLeftMargin”设置为右侧按钮,将“FlexibleRightMargin”设置为左侧按钮。

    编辑:如果在旋转设备或添加新的 subview 时看到怪异的孔洞或重叠,则autoresizingMask也是要查看的第一件事。通常,为 subview 正确设置这些 mask 可以使您在两个方向上都能获得漂亮的 View ,而不必手动布置 subview -但通常需要进行一些实验。

    Edit2 :(因为这仍然在收集投票)自动调整大小的 mask 现在大部分被“自动布局”所取代,这允许对 View 的大小和位置进行更加灵活的约束。话虽如此,对于动态添加的 View ,translatesAutoresizingMaskIntoConstraints仍然偶尔会有用。

    关于ios - UIView的autoresizingMask的目的是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7337439/

    10-14 20:59