UIScrollView无法在

时间:2016-09-10 10:54:19

标签: ios uiscrollview

遇到UIScrollView问题。我有这样的设置:

enter image description here

enter image description here

我在第一张图片中有一个滚动视图,包括尾随,前导,顶部和底部约束。在第二张图片中,我在滚动视图中放置了相同尺寸的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)来检查是否正在注册触摸并且它们根本没有。我在这里做错了什么?

1 个答案:

答案 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; 它会使滚动的内容大于框架。

让我们试试这个,如果问题没有解决,我们会进一步研究它。