如何在滚动 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 从屏幕中间开始时)的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift - 滚动时如何向上移动搜索栏?

如何在移动设备上向上/向下滚动后“显示/隐藏”Bootstrap 3 内容?

UIScrollview 在向下滚动并推送新的视图控制器后向上移动内容

向上滚动 uitablviewcell 部分可见

键盘出现多次时,滚动视图不会向上移动

在android中打开键盘时设置滚动屏幕向上移动