【问题标题】:How to move up scrollview 's frame before scrolling contentView? (when scrollView starts at the middle of the screen)如何在滚动 contentView 之前向上移动 scrollview 的框架? (当 scrollView 从屏幕中间开始时)
【发布时间】: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 { //... }

【问题讨论】:

    标签: ios swift uiscrollview frame contentoffset


    【解决方案1】:

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

    希望这会有所帮助!

    【讨论】:

    • 谢谢,我以为它会取消它,但它没有,这是正确的解决方案,感谢您的回答
    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 2013-10-25
    相关资源
    最近更新 更多