将视图转换为模式控制器的scrollview

时间:2015-08-17 16:58:40

标签: ios xcode uiscrollview storyboard

我有一些模态控制器是UIViews并且不滚动。

阅读SO,苹果文档和其他地方,似乎有三种方法来解决这个问题:

  • 多选视图中的所有元素然后转到 主编embedin-UIScrollView的。

    将视图更改为身份检查器中的滚动视图,然后 将以下行添加到viewdidload:

    [(UIScrollView *)self.view setContentSize:CGSizeMake(320,2000)];

    将元素复制到剪贴板,删除uiview,添加新的scrollview 并将元素复制到scrollview中。警告 - 这会破坏 元素的定位,虽然它确实保留了它们 出口属性。

但是,我已经尝试了所有这些并且scrollview仍然不会滚动。

我还缺少其他任何步骤吗?

提前感谢任何建议。

修改

让滚动视图工作并不容易,网上有很多相互矛盾的建议。

我终于通过在一个单独的方法中设置内容大小而不是viewdidload来实现这一点。

  • (void)viewDidLayoutSubviews { self.MainScroll.contentSize = CGSizeMake(320,1800); }

还要感谢Evo提供有关正确设置所有垂直尺寸以及在VC尺寸检查器中使用自由形式的建议,因为如果您不仔细设置这些尺寸,它将无法工作。

1 个答案:

答案 0 :(得分:1)

如果您已启用EVER自动布局,即使现在已停用,您还需要:

  1. 选择您计划滚动的视图控制器
  2. 在情节提要视图的右下角,单击第三个按钮(最右侧),然后“重置为建议的约束”
  3. 确保滚动视图中的所有元素都嵌入到所需的位置。
  4. 如果您没有使用自动布局:

    1. 检查视图控制器的大小是否设置为(320,2000),或者您想要的任何内容。
    2. 在视图控制器的模拟指标中,您可以将尺寸类型设置为自由格式。
    3. 然后在模拟指标右侧的标签中,您可以将宽度和高度设置为所需的值。
    4. 请评论任何疑虑