我在GitHub上有一个示例项目,你可以看到 - > https://github.com/LetSwiftDev/ContainerViewInsideScroll/tree/master
我有两个,视图控制器,一个是名为oneViewController
的普通视图控制器,twoViewController
里面有UIScrollView
,当我点击OPEN TWO
按钮转到{{1在twoViewController
内,但是;
我的twoViewController有不同的高度大小,如1500,里面有滚动视图,不要滚动到底部?我没有看到中间的侧面标签。
我该如何解决? 有什么想法吗?
下面是我的ContainerView
代码。我使用centerViewController
centerViewController
答案 0 :(得分:3)
这是您的演示解决方案。你可以在这里下载 https://www.dropbox.com/s/zvrjd0gp06xe5nw/ContainerViewInsideScroll-master%202.zip?dl=0
问题是你必须学习Scrollview的自动布局。
我只是给出了对scrollview给定约束的提示。
首先进行滚动视图并适合屏幕并给出如下约束
现在在scrollview中查看视图并适合scrollview并给出像
这样的约束仍然给出了约束错误。所以现在,给scrollview提供相同的视图宽度
现在你可以根据需要采取尽可能多的控制,并像我们给其他控件一样正常地给出约束。
希望你能理解。
享受编码。
答案 1 :(得分:2)
原因是scrollView
太长而且隐藏在屏幕下方且contentSize
未正确配置。
一个懒惰的解决方案是在出现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所提到的那样。