在阅读了关于 SO 和developer.apple.comUIView
的内容后,我仍然不清楚目的是什么。什么情况下需要设置此属性?autoresizingMask
问问题
19016 次
2 回答
28
是的,如果您不想手动调整视图大小,通常需要设置它。请注意,它主要用于子视图(即那些不占据整个屏幕的视图)而不是应用程序的主视图。
在以下情况下,视图通常可能需要调整大小:
- 设备旋转
- 一个额外的视图(比如一个广告)被添加到视图中,因此现有的子视图的可用空间更少。
例如,假设您有一个带有两个按钮的视图,一个在左上角,另一个在右上角。当视图从纵向转换为横向时,为了使按钮变宽,您需要将 FlexibleLeftMargin 设置为右侧按钮,将 FlexibleRightMargin 设置为左侧按钮。
编辑:如果您在设备旋转或添加新子视图时看到奇怪的孔或重叠,那么 autoresizingMask 也是首先要查看的内容。通常,为子视图正确设置这些掩码可以让您在两个方向都获得漂亮的视图,而无需手动布置子视图 - 但通常需要一些试验。
Edit2:(因为这仍在收集赞成票)自动调整蒙版现在大部分被“自动布局”取代,它允许对视图的大小和位置进行更灵活的约束。话虽如此, translatesAutoresizingMaskIntoConstraints 仍然偶尔对动态添加的视图有用。
于 2011-09-07T16:42:28.397 回答
4
目的是当 UIView 由于调整大小、方向变化、在表格视图单元格中显示编辑控件等而发生变化时,UIView 会正确地移动和调整大小。
于 2011-09-07T16:42:38.897 回答