2

UIView具有UIViewAutoresizing高度+顶部或高度+底部的自动调整大小行为是什么?这有意义吗?边距之一或视图本身是否优先?我刚刚发现我不小心将视图设置UIViewAutoresizingUIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin,这导致视图0在其父级调整大小时调整到一个高度。

4

2 回答 2

10

这是自动调整大小的工作原理:

假设父视图的高度为 400,并且您的视图设置为 y = 100, height = 200

这意味着,您的视图上方有 100 个像素,您的视图有 200 个像素,您的视图下方有 100 个像素。

使用flexibleHeight和flexibleTop,表示当父view frame发生变化时,会保持底部100像素固定,剩余的部分在top margin和height之间按比例分割

因此,如果您从父级的 400 高度到 300 高度,这意味着它将使用 100 作为底部边距并按比例拆分剩余的 200,留下您的 y = 66.666 和高度 = 133.333

如果你从 400 高度到 100 高度,它仍然会使用那些 100 作为底部边距,为顶部边距和高度留下 0 空间,让你的 y = 0,高度 = 0

于 2012-08-29T20:31:58.703 回答
1

UIViewAutoresizingFlexibleTopMargin当父视图调整大小时,将保持底部边距不变,UIViewAutoresizingFlexibleHeight并将其高度与其父高度成比例地更改为剩余高度。

我看不到UIViewAutoresizingFlexibleHeight. 我曾经使用UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth过一个视图,其中包含一些文本,以独立于我的设备的方向,以恒定的高度粘贴到我的父视图的底部。

于 2012-08-29T21:00:47.963 回答