带有从xib加载的View的Scrollview

时间:2015-03-18 13:29:51

标签: ios uiscrollview autolayout xib

我这里有问题。在过去的3-4天里,我试图找到解决方案,但无济于事。我正在使用xib将视图作为子视图加载到scrollView。 我正在使用iOS8和大小类以及自动布局。 问题是视图被添加到scrollview,但scrollview无法超越一个点。那是我无法滚动到底部。 这令人沮丧,因为我刚刚开始开发iOS应用程序。

我附上了我已应用的约束的屏幕截图。希望能在这里得到一些帮助。

enter image description here

第一个屏幕截图是实际视图控制器的视图,其中包含scrollview.And Place Detail Info视图是添加了从xib加载的视图的占位符。屏幕截图还列出了不同的约束。

第二个和第三个屏幕截图是我正在尝试加载到scrollView中的xib文件。

enter image description here

enter image description here

请让我知道我哪里出错了。

3 个答案:

答案 0 :(得分:1)

如上所述,问题与滚动视图的内容大小有关。只需尝试将滚动视图的每个直接子视图的宽度和高度(显式或隐式:请参见下面的解释)添加,然后定义其中的所有距离约束。 *由"隐含"宽度/高度限制我的意思是"宽高比","相等的宽度/高度"两种观点之间的关系。 附:在处理类似滚动视图的控件和自动布局时,应该有一些详尽的(其中一些可能看似多余)子视图的约束集。 希望这会有所帮助。

答案 1 :(得分:0)

您的问题在于查看谁是您的scrollview的直接子视图。在自动布局中,scrollView根据其子视图计算其内容大小。

从此视图中删除所有constarints后,请按照以下步骤操作,我希望您能解决问题。

1.对于滚动视图,设置所有4个约束,即前缘,后缘,超视和底部约束。

2.对于作为滚动视图的直接子视图的视图,设置所有4个约束(前导,尾随,顶部和底部),以及这些设置的高度约束,并使宽度等于scrollview。 如果你的直接子视图的高度大于你的屏幕大小或滚动视图,它肯定会滚动。

运行并检查您是否能够滚动并继续进行。

在第2步之后,所有与ambgious类型错误相关的constarints都会重新出现。现在你可以像往常一样设置所有其他约束。

要更清楚地了解在scrollview中设置constarints,请参阅此https://www.youtube.com/watch?v=4oCWxHLBQ-A

答案 2 :(得分:-1)

在界面构建器本身中,可以选择预览所有可用设备的约束。这将确保约束适用于Apple的所有可用设备。这是一个快速教程,可以帮助您。

http://adoptioncurve.net/archives/2014/08/working-with-size-classes-in-interface-builder/

一旦验证并且您仍然无法找到合适的解决方案,那么滚动视图的内容大小可能有问题。尝试增加滚动视图内容大小。 我希望这可以解决你的问题。

快乐的编码。干杯:)