在SO上阅读UIView
的{{1}}和developer.apple.com后,我仍然不清楚其目的是什么。在什么情况下需要设置此属性?
答案 0 :(得分:23)
是的,如果您不想手动调整视图大小,通常需要进行设置。请注意,它主要用于子视图(即那些不占用整个屏幕的视图),而不是应用程序的主视图。
视图通常可能需要调整大小,如果:
例如,假设您有一个带有两个按钮的视图,一个位于左上角,另一个位于右上角。为了在视图从纵向转换为横向时按钮变宽,您需要将FlexibleLeftMargin设置为右侧按钮,将FlexibleRightMargin设置为左侧按钮。
编辑:如果在旋转设备或添加新的子视图时看到奇怪的孔或重叠,则首先要查看autoresizingMask。通常,为子视图正确设置这些蒙版可以在两个方向上获得漂亮的视图,而无需手动布局子视图 - 但通常需要进行一些实验。
Edit2 :(因为这仍然是收集投票)现在,自动调整掩码大多被“自动布局”取代,这允许对视图的大小和位置进行更灵活的约束。话虽这么说,translatesAutoresizingMaskIntoConstraints仍然偶尔对动态添加的视图有用。
答案 1 :(得分:4)
目的是UIView在超级视图由于调整大小,方向更改,在tableview单元格中显示编辑控件等而发生更改时正确地移动和调整大小等。