我正在构建一个应用程序,它在 UINavigationBar 下方有一个 UIImageView,如下面的屏幕截图所示。
在我设置自动调整约束之前,我记录了边界大小,它说大小是 320x505,这是非常合理的,因为导航栏和状态栏占用了 64 pts。
约束在我设置之前是这样的:
后来,我添加了如下约束的“内交叉”部分,这一次,在记录边界大小时,它给了我 320x569,其中考虑了状态栏和导航栏。
我很确定 UIImageView 的“实际”大小不会增加,因为当我加载图像时,它只是很好地显示图像,没有区别,但我不确定为什么会这样。
所以我的问题是导致这种情况的原因以及如何解决它?
提前致谢!
最佳答案
第一个 Autosizing 模式设置(以及其他)固定顶部边距和固定底部边距以及固定高度。基本上,您是在告诉 View 顶部和底部具有相同的边距,但不修改其高度,这是几乎不可能的,因此界面构建器将优先考虑底部固定 Spring 。
第二种情况,具有固定的顶部边距和固定的底部边距以及灵活的高度,在整个内容上拉伸(stretch)您的图像。如果您没有取消选中 View Controller 的选项(在顶部栏下扩展),则完整内容为 568(对于 4 英寸设备,这是您的情况)(在 ios 7 上,如果您选中了该选项,则 View Controller 的 View 的 y 原点位于导航栏下方& 状态栏,就在最上角)。
如果取消选中在顶栏下扩展选项,viewcontroller 的 View 将从 64 开始。
关于iOS - 设置自动调整约束前后不同的 bounds.size 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686880/