Xcode:我已经将我的UIImageView设置为最小和最大宽度,那么为什么它总是最小的尺寸?

问题描述:

我已经把以下限制我的UIImageView(名称= RunwayGallery):Xcode:我已经将我的UIImageView设置为最小和最大宽度,那么为什么它总是最小的尺寸?

Width: >= 200 
Width: <= 600 
Align Center X to: Superview 
100:133 Ratio to: RunwayGallery 
Top Space to: ImageAbove, Equals 10 

那么,为什么总是UIImageView的宽度200?即使在两侧(和下方)都有足够的屏幕空间来放大UIImageView以填充屏幕时,也是如此。

非常感谢。

+2

因为你的约束是不明确的。 200到600之间的任何宽度都可以满足他们,自动布局恰好选择200. – dan

+0

似乎很公平。那么如果我想要最大宽度,我应该如何添加约束条件,但是当屏幕变得太小时它会调整大小? –

+1

也许:宽度= 600,优先级= 900,宽度> = 200,优先级= 1000。 – tagy22

不要在约束中定义图像视图的宽度。定义您想要的图像视图左侧和右侧的填充。然后自动布局可以使您的图像尽可能大,而不会变得太大。

你需要添加更多的约束来告诉UIImageView选择200到600之间的宽度。

你认为superview的宽度是多少?假设上海华盈的宽度将是200和600之间,你可以告诉的UIImageView通过移除两个宽度的限制,增加了以下限制,以填补上海华宽度:

Leading Space to: Superview Equals: 0 
Trailing Space to: Superview Equals: 0 

现在的UIImageView知道伸展,以便有在其领先(左侧)和后侧(右侧)与超级观点的前后两侧之间没有空间。

好吧,我混合了一些你们的答案以及与此想出了:

Leading Space to: Superview Equals: 0 (priority 900) 
Trailing Space to: Superview Equals: 0 (priority 900) 
width <= 600 (priority 1000) 

这充分有效。如果你仔细考虑它是有道理的。它填补了双方的领先和尾随空间,除非它变得大于600.

感谢您的答案!赞赏。

编辑:这仍然是相同的:

Align Center X to: Superview 
100:133 Ratio to: RunwayGallery 
Top Space to: ImageAbove, Equals 10