使用stackview自动布局进行UIImageview比赛

时间:2016-11-25 07:00:11

标签: ios autolayout uistackview

我正在使用UIStackView并且stackview的维度是“按比例填充”。

enter image description here

在上面的层次结构的第一个视图中,我有UIImageView,宽高比为1:1。

enter image description here

由于某种原因,视图控制器显示错误视图的警告。为什么会这样?我无法理解我的约束是什么错误。

第二件事是,如果我接受更改框架并使用其他设备变体,而有时UIImageView高度和宽度不同,则无论其1:1比率如何都会发生变化。例如,如果70:70的宽度和高度比设备变化后更改为70:71或69.5:10:5 ..这里发生了什么?

接受更新帧后:(检查UIImageView的宽度和高度,其中宽度!=高度为1:1的比例)

enter image description here

我在这里做错了吗?

还有一件事是我的三个视图的比例高度分别为135,105和240,但是当我重新打开项目时,它变为160,160和151.那么,这是默认行为吗?

如果您想测试此问题,请Demo link

2 个答案:

答案 0 :(得分:0)

那是因为您没有添加前导约束。

您需要设置imageView的y位置。

这是一个项目link

答案 1 :(得分:0)

我检查了你的项目,根本没有问题。仅选择ImageView并单击“更新框架”。并将顶部和底部空间设置为相等。 纵横比是四舍五入的,因此差值为1或更小。

根据视图高度计算宽高比,ImageView高度始终等于(视图高度 - 61)和宽度舍入

希望它有所帮助。