ContainerView Inside ScrollView不要在Swift 3中滚动

时间:2017-05-11 08:51:39

标签: ios swift uiscrollview containers

我在GitHub上有一个示例项目,你可以看到 - > https://github.com/LetSwiftDev/ContainerViewInsideScroll/tree/master

我有两个,视图控制器,一个是名为oneViewController的普通视图控制器,twoViewController里面有UIScrollView,当我点击OPEN TWO按钮转到{{1在twoViewController内,但是;

  

我的twoViewController有不同的高度大小,如1500,里面有滚动视图,不要滚动到底部?我没有看到中间的侧面标签。

我该如何解决? 有什么想法吗?

下面是我的ContainerView代码。我使用centerViewController

控制过去的视图控制器
centerViewController

2 个答案:

答案 0 :(得分:3)

这是您的演示解决方案。你可以在这里下载 https://www.dropbox.com/s/zvrjd0gp06xe5nw/ContainerViewInsideScroll-master%202.zip?dl=0

问题是你必须学习Scrollview的自动布局。

我只是给出了对scrollview给定约束的提示。

首先进行滚动视图并适合屏幕并给出如下约束

Image

现在在scrollview中查看视图并适合scrollview并给出像

这样的约束

image2

仍然给出了约束错误。所以现在,给scrollview提供相同的视图宽度

image3

现在你可以根据需要采取尽可能多的控制,并像我们给其他控件一样正常地给出约束。

希望你能理解。
享受编码。

答案 1 :(得分:2)

原因是scrollView太长而且隐藏在屏幕下方且contentSize未正确配置。

enter image description here

一个懒惰的解决方案是在出现twoViewController时在代码中正确设置它们。

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    let width = self.scrollView.frame.width
    scrollView.frame = CGRect(origin: scrollView.frame.origin,
                              size: CGSize(width: width, height: CGFloat(500)))
    // Make sure this height is longer than scrollView.
    scrollView.contentSize = CGSize(width: width, height: CGFloat(2000))
  }

正确的解决方案(以及实现scrollview的正确方法)是修复可滚动内容大小模糊(故事板中的自动布局错误),就像@Jitendra Modi所提到的那样。