UIView的autoresizingMask的目的是什么?

Sun*_*day 22 uiview ios autoresizingmask

阅读后UIViewautoresizingMask对SO和developer.apple.com我还是不清楚的目的是什么.设置此属性的必要条件是什么?

SVD*_*SVD 23

是的,如果您不想手动调整视图大小,通常需要进行设置.请注意,它主要用于子视图(即那些不占用整个屏幕的视图),而不是应用程序的主视图.

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

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

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

编辑:如果在旋转设备或添加新的子视图时看到奇怪的孔或重叠,则首先要查看autoresizingMask.通常,为子视图正确设置这些蒙版可以在两个方向上获得漂亮的视图,而无需手动布局子视图 - 但通常需要进行一些实验.

编辑2 :(因为这仍然是收集upvotes)自动调整掩码现在大多被"自动布局"取代,这允许对视图的大小和位置进行更灵活的约束.话虽这么说,translatesAutoresizingMaskIntoConstraints仍然偶尔对动态添加的视图有用.

  • 不要忘记双高"In Call"状态栏!通过录制语音备忘录并切换到您的应用,您可以轻松地复制此内容. (4认同)

Kyr*_*off 5

目的是当 UIView 的超级视图由于调整大小、方向变化、在表格视图单元格中显示编辑控件等而发生变化时,UIView 会正确地移动和调整大小。