我有一个根UIView
(用于渲染阴影),它的内容是另一个UIVIew
,其中包含UIImage
和底部的一些标签。当我查看在界面构建器中设置约束的示例海报时,它看起来或多或少是我想要的。
在此屏幕截图中,DropshadowUI View
保留内容并呈现阴影。 CardView
同时保留底部的UIImageView
和UILabel
。 DropshadowUI View
是透明的,CardView
有蓝色背景,是阴影的完整高度/宽度(带有一点边距),UIImageView
有绿色背景在测试时帮助区分视图。您可以看到UIImageView
占据CardView
布局的大约80%,这是所需的。 CardView
的其余部分由UILabel
s。
但是,当我运行应用程序时,约束似乎与界面构建器中显示的方式不同。 UIImageView
延伸以占据CardView
的整个高度。由于这个原因,UILabel
被隐藏起来了。从我的UINavigationBar和UITabBar背后的绿色模糊来看,UIImageView
似乎垂直延伸超出可见区域的范围,尽管图像甚至没有那么大。
现在在界面构建器中设置UIImageView
图像(将在此方式下以编程方式设置)。内容模式是Aspect Fit。为什么UIImageView
垂直伸展? Status
标签在Superview底部的底部空间设置为8个点。 Year
标签的底部空间被限制在状态的顶部。 Movie Title
的底部被限制在Year
的顶部。 Movie Title
将其顶部限制在UIImageView
的底部。假设标签会阻止图像视图在底部生长,而是通过拉伸顶部来获得更高(这被限制在超视图视图顶部。
我的约束有问题吗?我还在学习自动布局系统,所以如果屏幕截图中的某些内容无法解释我的约束,请告诉我如何帮助澄清它们。
我将UIImageView
重置为建议的约束,并在运行时以此结束,尽管设计时视图看起来正确。
有没有办法让我限制UIImageView,使图像只能变得更高,直到空间不足以适应其他内容?我在这里错过了我的底部标签,因为现在图像适合UIImageView
,但将其他所有内容推向远处。我宁愿尽量填充尽可能多的水平空间,直到它下面的兄弟姐妹不能再被推下去了。
我得到的,与我想要的相比
答案 0 :(得分:1)
选择您的图片,然后转到布局问题工具>重置为建议的约束