即使UIView帧增加,UIScrollview也不会滚动超出UIView高度

时间:2015-03-25 22:18:56

标签: ios iphone uiscrollview autolayout xcode-storyboard

我正在尝试创建一个在iphone 3.5英寸屏幕中需要滚动的屏幕。我附加了包含uiviewcontroller,uiscrollview,uiview配置的图像。问题是虽然高度似乎增加,但是当我运行iPhone 4s时,滚动的某些部分隐藏在UIView之外(虽然当我在控制台中打印高度时uiview高度显示700)。可能是什么问题?请帮帮我?enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

5 个答案:

答案 0 :(得分:1)

您的约束具有负值。在最后一个截图中,我假设是scrollView中视图的约束,superview的底部偏移是-400。

我认为这就是为什么你不能看到整个视图,因为底部偏移是负面的。尝试将此值设置为0,这应该可以解决它。

如果这不能解决您的问题,也许您可​​以指定图像中约束的视图。

让我知道它是怎么回事!祝你好运!

答案 1 :(得分:1)

当您使用UIScrollViewAutoLayout时,它总是很棘手。

您必须将所有子视图添加到一个UIView,并将该视图添加到UIScrollView

您需要的Autolayout约束:

对于UIScrollView:

Left to Superview
Right to Superview
Top to Superview
Right to superview

对于UIScrollView的内部视图(即ScrollView中的唯一视图):

Width & Heigh
Left, Right, Top and Bottom constraint to Superview (i.e. ScrollView)
Also add Horizontal Centre to Superview.

它的工作方式就像魅力一样(至少每次为我工作:)。

答案 2 :(得分:1)

contentSize必须大于scrollview的框架才能滚动任何内容。 :)

在这种情况下,它们都是(600, 1300),因此请将scrollView的高度更改为(320,480)

答案 3 :(得分:1)

这有点令人困惑,但正如Yuvrajsinh告诉你的那样,你需要将滚动视图的自动布局约束设置为超视图的4边。然后对scrollView的内容执行相同的操作,最重要的是:为内容设置固定/不相关的scrollview高度和宽度

答案 4 :(得分:0)

感谢您提供的信息和建议。现在它正常工作。我做的是

  1. 将滚动视图设置为顶部,左侧,右侧,底部与superview对齐
  2. 将滚动视图的内容视图设置为顶部,左侧,右侧,底部与scrollview对齐
  3. 将滚动视图的内容视图设置为" Equal Heights"和"相等的宽度"到顶级超级视图。
  4. 然后我将等高度约束设置为低优先级250

    现在我可以根据手机屏幕的大小随时滚动:)