该应用程序有一个简单的TableView控制器,在左侧显示图像。 (见第一张图片)。 UIView
与x轴对齐,具有前导空间约束,并具有最大宽度。我认为这也足以防止图像被扭曲超过130像素,但事实并非如此。当设备处于横向模式时,问题更加明显。
为什么忽略了一些约束(请参阅视图调试器屏幕截图中的某些约束是如何显示的),更重要的是,如何使用固定高度的可变宽度图像在单元格中不会出现扭曲?
答案 0 :(得分:0)
你问过两个问题,我将单独回答:
实际上他们并没有被忽视。您尚未为这些特定区域设置任何约束。应用约束时,相应的行以蓝色突出显示。如果没有为特定边应用约束,它将保持灰色。
您可以使用AspectFit或AspectFill,这样您的图像的宽高比就不会受到干扰,而且看起来不会拉长。
您还应该从ImageView中删除宽度约束。然后你可以使用AspectFill,如果你知道你的身高不会从130增加。如果你的图像高度可以超过130,你应该使用AspectFit。
答案 1 :(得分:0)
你有一些矛盾的约束。您将前导空间设置为superview,并将图像的centerX约束到superview的centerX(具有常量偏移)。这两个足以决定宽度。随着超级视图变宽,其中心距离其前沿更远。因此,图像视图的中心也是如此。由于图像视图的前缘是锚定的,因此将其中心向远处移动会产生增加其宽度的效果。
这会与您的显式宽度约束冲突。
我希望记录不可满足的约束。
您需要弄清楚您希望如何解决冲突。您可以降低其中一个约束的优先级。你可以简单地摆脱centerX约束。或者无论你决定什么。