具有 UIViewAutoresizing Height+Top 或 Height+Bottom 的 UIView 的自动调整大小行为是什么?这有道理吗?边距之一或 View 本身是否优先?我刚刚发现我不小心将 View 的 UIViewAutoresizing 设置为 UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin,这导致 View 在其父级调整大小时调整到 0 高度。
最佳答案
这就是自动调整大小的工作原理:
假设父 View 的高度为 400,而您的 View 设置为 y = 100,高度 = 200
这意味着,您的 View 上方有 100 像素,您的 View 有 200 像素,您的 View 下方有 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
关于ios - UIViewAutoresizing flexible Height+Top 或 Height+Bottom 何时有意义?它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12185901/