繁体   English   中英

图像在约束条件下无法正常工作

[英]Image is not working as expected with constraints

我有一个根UIView (用于渲染阴影),它的内容是另一个UIVIew ,它在底部包含一个UIImage和一些标签。 当我查看在接口生成器中设置了约束的示例海报时,它看起来或多或少是我想要的。

在此屏幕快照中, DropshadowUI View包含内容并渲染阴影。 CardView在底部同时包含UIImageViewUILabel DropshadowUI View是透明的, CardView具有蓝色背景,并且是阴影的整个高度/宽度(带有一点边距), UIImageView具有绿色背景,有助于在测试时区分视图。 您可以看到, UIImageView大约占据了CardView布局的80%,这是理想的。 CardView的其余部分由UILabel

在此处输入图片说明

但是,当我运行该应用程序时,约束似乎与界面构建器中所示的工作方式不同。 UIImageView拉伸以占据CardView的整个高度。 因此, UILabel被隐藏起来了。 从我的UINavigationBar和UITabBar后面的绿色模糊来看,尽管图像甚至没有那么大,但UIImageView似乎垂直延伸到可见区域的范围之外。

在此处输入图片说明

现在,在界面生成器中设置了UIImageView图像(将在工作时以编程方式设置)。 内容模式为纵横比适合。 为什么UIImageView垂直拉伸? Status标签的Superview底部到底部的空间设置为8点。 Year标签的底部空间被限制在状态的顶部。 Movie Title的屁股被约束到顶部Year Movie Title的顶部被限制在UIImageView的底部。 假设标签将阻止图像视图在底部生长,而是通过拉伸顶部而变高(这仅限于Superview视图的顶部。

我的约束有问题吗? 我仍在学习自动布局系统,因此,如果屏幕截图中有某些内容无法帮助解释我的约束条件,请让我知道我可以做些什么来帮助澄清它们。

编辑

尽管设计时视图看起来正确,但我还是将UIImageView重置为建议的约束,并最终在运行时完成了此操作。

在此处输入图片说明

我是否有办法约束UIImageView,以使图像只能变得更高,直到空间不足以容纳其余内容为止。 我在这里丢失了底部标签,因为现在图像适合UIImageView但是将其他所有内容推到了最低点。 我希望它尝试填充尽可能多的水平空间,直到它下面的兄弟姐妹不再能够被进一步压低为止。

我得到的与我想要的

在此处输入图片说明 在此处输入图片说明

选择您的图像,然后转到“ 布局问题”工具>“重置为建议的约束”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM