繁体   English   中英

设置UIImage的高度等于其宽度

[英]Set UIImage's height equal to its width

我的问题恰恰是标题所说的。 我将imageview的宽度设置为等于屏幕的宽度(通过情节提要,将左右约束设置为0),我尝试过:

imageView.frame = CGRect(x: 0, y: 0, width: imageView.frame.width, height: imageView.frame.width)

但它不起作用。 不确定我的其余布局(图像在堆栈视图中)还是我的代码是否有问题。

这是我的整个布局: 在此处输入图片说明 谢谢你的帮助。

该代码不起作用,因为imageView.frame.width为0。您可以在情节提要中将堆栈视图约束的宽高比设置为1:1,并将图像视图的左右约束设置为堆栈视图的0。

以我的经验,自动布局不会与设置框架混合在一起; 可以争论的是,框架是根据自动布局约束设置的。

更重要的是,我想我对您想做的事情含糊其辞:

  1. 您想要的图像应该是屏幕的整个宽度(或其一部分);
  2. 您希望它是正方形(或其他比率);
  3. 您希望它位于垂直的UIStackView中,以便您可以自动对齐标题等。

对于背景,UIImageView元素具有“本征”大小,设置为其中显示的图像的大小,并且如果没有其他限制,将采用这些大小。 如果您未指定UIStackView的大小,则会根据其中元素的固有大小来调整大小。 如果您为其指定大小,它将尝试调整其中的元素以适合其大小。

为了实现上面概述的方案,您想要将UIStackView的宽度设置为(例如,将其限制为与容器视图的宽度相同)–这将强制将相同的宽度应用于UIImageView。

UIImageView的高度仍将基于其显示图像的高度。 要使UIImageView方形,可以将其宽高比约束设置为1:1。

祝您好运,如果我误解了您想要实现的目标,或者您需要进一步澄清,请告诉我。

暂无
暂无

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

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