如何在滚动 contentView 之前向上移动 scrollview 的框架? (当 scrollView 在屏幕中间开始时)
How to move up scrollview 's frame before scrolling contentView? (when scrollView starts at the middle of the screen)
我的scrollview在屏幕的垂直中心,上面有一个view1,y=0。
当我向下滚动时,view1 被放大(这很好用,它创建了缩放)。当我向上滚动时,我想将 scrollView 向上移动到屏幕顶部 (y=0),然后才开始正常滚动以显示 contentView 的其余部分。所以在我们到达 y=0 之前,contentView 不应该滚动。
我该怎么做?
问题是:如果我向上滚动,contentView 会滚动。所以我不知道如何检查 contentView,因为框架会上升,但 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 { //... }
一种可能的方法是在滚动视图被拖动且您的框架尚未位于顶部时,简单地 "reset" 滚动视图的 contentOffset.y 值。
只需尝试在您的第一个 if 子句中设置 scrollView.contentOffset = CGPointZero
。
希望对您有所帮助!
我的scrollview在屏幕的垂直中心,上面有一个view1,y=0。
当我向下滚动时,view1 被放大(这很好用,它创建了缩放)。当我向上滚动时,我想将 scrollView 向上移动到屏幕顶部 (y=0),然后才开始正常滚动以显示 contentView 的其余部分。所以在我们到达 y=0 之前,contentView 不应该滚动。
我该怎么做?
问题是:如果我向上滚动,contentView 会滚动。所以我不知道如何检查 contentView,因为框架会上升,但 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 { //... }
一种可能的方法是在滚动视图被拖动且您的框架尚未位于顶部时,简单地 "reset" 滚动视图的 contentOffset.y 值。
只需尝试在您的第一个 if 子句中设置 scrollView.contentOffset = CGPointZero
。
希望对您有所帮助!