Autolayout:使用ScrollView时宽度不正确

时间:2014-08-18 17:10:17

标签: ios objective-c uiscrollview scrollview autolayout

我正在使用自动布局并按照本指南中的说明进行操作:

http://www.g8production.com/post/57513133020/auto-layout-with-uiscrollview-how-to-use

我使用xib文件和界面生成器构建我的视图。这是我的树:

-UIView

- UIScrollView中

--- UIView(ContentView)

----子视图

问题是,当我只在ContentView中放置 ONE!子视图(UIImageView)并为子视图设置左,上,右约束时,我收到一条警告:Autolayout expected宽度为1000 !!我不知道为什么会这么破碎。我的所有视图的宽度都是320像素,所以不能成为问题。 这里有一些屏幕截图可能会有所帮助:

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:3)

UIImageView.image.size.width在您的情况下为1000。因此,它遵循自己的内在内容大小,并根据自己的内在内容大小进行扩展。您可以按照其中一种方法解决此问题:

方法1: - 添加contentView的width约束,因此UIImageView将采用contentView的宽度。

方法2: - 添加UIImageView的width约束,因此contentView将采用UIImageView的宽度。

方法3: - 在contentView和UIScrollView上添加Equal Width约束。所以contentView将采用scrollView宽度,而UIImageView将采用contentView宽度。

您可以在此处获得有关contents intrinsic content size的更多详细信息: http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2

答案 1 :(得分:1)

检查每个约束并检查其constant参数的值,并确保它们为0或您期望的任何值。 Interface Builder有一个讨厌的习惯,即在创建约束时获取画布上的大小。