【发布时间】:2014-09-08 13:22:05
【问题描述】:
我在UISplitViewController 中的详细视图的自动布局方面遇到了问题。我的视图层次结构包含一个带有装饰元素的UIImageView,并且图像视图的固有大小似乎搞砸了其余控件的布局。
这些是我为图像视图指定的约束:
H:[UIImageView:0xc83ba90]-(NSSpace(20))-|
H:|-(NSSpace(20))-[UIImageView:0xc83ba90]
UIImageView:0xc83ba90.bottom == UITextField:0xc83d2d0.bottom
V:[UIImageView:0xc83ba90 (3)]>,
H:[UIImageView:0xc83ba90 (532)] Hug:1 CompressionResistance:750
V:[UIImageView:0xc83ba90 (2)] Hug:250 CompressionResistance:750
我想要的行为是调整图像视图的大小以填充其父视图,如前两个约束所述。我看到的实际行为是图像视图只占用由其固有大小约束描述的水平空间。它似乎也在改变其所有兄弟视图的布局,就好像超级视图只是在一个与图像视图一样宽的矩形中布置视图。
我认为尽可能低地指定图像视图的拥抱优先级会让其他约束覆盖它以调整图像视图的大小。我在这里做错了什么?
【问题讨论】:
-
UIImageViewdoes not define an intrinsic content size by default。你能发一张IB的照片让我们看看布局吗?仅使用文本很难了解您想要做什么。 -
Interface Builder 的哪一部分?涉及到很多控制。看起来 UIImageView 将其图像的大小作为其固有大小。
-
遇到同样的问题。假设图像是 300x100。我希望它在 iPad 和 iPhone 上保持相同的 比例。但是,它的原始大小会覆盖任何动态约束。所以要么在 iPad 上看起来太小,要么在 iPhone 上看起来太大。
-
@Greg,您找到任何解决方案了吗?
-
@GuillaumeAlgis 您上面的链接指的是
UIView,而不是UIImageView。
标签: ios uiimageview autolayout uisplitviewcontroller