遇到UIScrollView问题。我有这样的设置:
我在第一张图片中有一个滚动视图,包括尾随,前导,顶部和底部约束。在第二张图片中,我在滚动视图中放置了相同尺寸的UIView(我计划向其中添加内容)。它固定在滚动视图上,也可以水平和垂直居中。当我尝试滚动时,似乎没有注册任何触摸。我设置了一个很大的内容:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
print("The scroll views height is \(scrollView.frame.size.height)")
scrollView.contentSize = CGSize(width: scrollView.frame.size.width, height: 1000)
print("The scroll view content height is: \(scrollView.contentSize.height)")
}
我还可以随时随地启用用户互动。我正在使用委托方法scrollViewDidScroll(scrollView: UIScrollView)
来检查是否正在注册触摸并且它们根本没有。我在这里做错了什么?
答案 0 :(得分:0)
希望这会对你有所帮助,许多人面对这个问题我希望我的解决方案可以为开发者提供帮助。
您的视图层次结构应如下所示: -
View (main view of my UIViewController) – with
-ContainerScrl
--Scroll View (UIScrollView)
---ViewInsideScrl
----Content1
----Content2 (etc)
As,仅限ScrollView Scroll当其内容大小将大于Scrollview的框架时。
现在来了imp。部分约束应该是: -
为ContainerScrl提供约束,然后滚动视图应该从ContainerScrl的所有方向固定,ViewInsideScrl应该固定到Scroll View。现在它将发出类似可滚动内容大小歧义的警告。
看,如果你给出像ViewInsideScrl的宽度和高度一样的约束应该等于ContainerScrl,那么所有的约束错误msg都会消失,但它不会随着框架等于内容大小而滚动,让我们假设你想滚动它在水平方向,然后只给予视图相同的高度约束,并给ViewInsideScrl宽度约束wrt ContainerScrl像比例约束 ViewInsideScrl = 2 * ContainerScrl; 它会使滚动的内容大于框架。
让我们试试这个,如果问题没有解决,我们会进一步研究它。