我正在使用自动布局并按照本指南中的说明进行操作:
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像素,所以不能成为问题。 这里有一些屏幕截图可能会有所帮助:
答案 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有一个讨厌的习惯,即在创建约束时获取画布上的大小。