如何在滚动 contentView 之前向上移动 scrollview 的框架? (当 scrollView 从屏幕中间开始时)

Posted

技术标签:

【中文标题】如何在滚动 contentView 之前向上移动 scrollview 的框架? (当 scrollView 从屏幕中间开始时)【英文标题】:How to move up scrollview 's frame before scrolling contentView? (when scrollView starts at the middle of the screen) 【发布时间】:2015-03-05 23:22:57 【问题描述】:

我的滚动视图位于屏幕的垂直中心,view1 位于其上方,y=0。

当我向下滚动时,view1 被放大(这很好用,它会创建一个缩放)。当我向上滚动时,我想将 scrollView 向上移动到屏幕顶部(y = 0),并且只有在那里,开始正常滚动以显示 contentView 的其余部分。所以 contentView 不应该滚动,直到我们到达 y=0。

我该怎么做? 问题是:如果我向上滚动,contentView 会滚动。所以没看到怎么查看contentView,因为frame会往上走,但是同时contentView也是。

这是我的滚动方法:

func scrollViewDidScroll(scrollView: UIScrollView) 
    if scrollView.contentOffset.y > 0 && scrollView.frame.origin.y > 0 
        //goes up before we scroll contentView
        scrollView.frame = CGRectOffset(scrollView.frame, 0, ........ ) //HERE
    

    //enlarge view
    else if scrollView.contentOffset.y < 0  //... 

【问题讨论】:

【参考方案1】:

一种可能的方法是在滚动视图的 contentOffset.y 值被拖动并且您的框架尚未位于顶部时简单地“重置”它。 只需尝试在您的第一个 if 子句中设置 scrollView.contentOffset = CGPointZero

希望这会有所帮助!

【讨论】:

谢谢,我以为它会取消它,但它没有,这是正确的解决方案,感谢您的回答

以上是关于如何在滚动 contentView 之前向上移动 scrollview 的框架? (当 scrollView 从屏幕中间开始时)的主要内容,如果未能解决你的问题,请参考以下文章