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