将UIImage的高度设置为等于其宽度

时间:2017-07-27 01:57:19

标签: ios uiimageview

我的问题正是标题所说的。 我将imageview的宽度设置为等于屏幕的宽度(通过故事板,我将左右约束设置为0) 我试过了:

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

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

这是我的整个布局: enter image description here 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

代码不起作用,因为imageView.frame.width为0.您可以将堆栈视图约束的方面设置为1:1,并将图像视图的左右约束设置为堆栈视图在故事板中为0。

答案 1 :(得分:0)

根据我的经验,autolayout不会与设置框架混在一起;可以说,整个观点是框架是基于自动布局约束设置的。

更重要的是,我想我对你想做的事情有一个模糊的概念:

  1. 你想拥有一个可以是整个屏幕宽度的图像(或者它的一部分);
  2. 你希望它是方形(或其他比例);
  3. 您希望它位于垂直UIStackView中,以便您可以自动对齐字幕等。
  4. 对于一些背景知识,UIImageView元素具有"内在的"尺寸,设置为其中显示的图像的大小,如果没有其他约束,将采用这些尺寸。如果您没有为UIStackView指定大小,它将根据其中元素的内在大小进行调整大小;如果你指定它的大小,它将尝试调整其中的元素以适应它。

    要实现上述方案,您需要将宽度设置为UIStackView(例如,将其约束为与容器视图相同的宽度) - 这将强制将相同的宽度应用于UIImageView。

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

    祝你好运,如果我误解了你想要达到的目标或是否需要进一步澄清,请告诉我。