我有一个父视图,其高度必须由其子内容决定. 如何在没有以编程方式改变它的情况下在故事板中实现这一点. 您可以使用AutoLayout完成此操作. 确保每个子视图都有限定其大小和位置的约
如何在没有以编程方式改变它的情况下在故事板中实现这一点.
您可以使用AutoLayout完成此操作.确保每个子视图都有限定其大小和位置的约束.然后,将父视图的垂直内容拥抱和压缩阻力优先级设置为必需.这将根据子视图的高度和位置定义父级的高度.
请注意,根据子视图的内容,您可能还希望更改其垂直内容拥抱和压缩阻力优先级.例如,numberOfLines设置为0的UILabel可以根据其内容自动增长,因此您希望它垂直拥抱其内容并抵制垂直压缩,以便调整父视图的大小.
此图像显示父(白色)视图及其在检查器面板中设置的垂直拥抱和压缩阻力优先级.请注意,父视图的宽度,x位置和y位置设置了约束,但没有为其高度设置约束.它可以根据子视图的高度和位置推断其高度(参见下图).
此图像显示每个子视图的约束.请注意,这些视图的垂直拥抱和压缩阻力优先级没有改变.这些视图中的每一个都具有x位置和y位置的约束,但是您会注意到并非所有视图都具有宽度和高度的约束.标签和开关之类的视图能够根据其内容自动推断其大小限制.如果没有在每个子视图上设置垂直位置约束,则AutoLayout将不知道每个子视图需要多少空间,因此它不知道父视图应该有多高.