2009-10-05 44 views
2

我正在使用UIScrollerView,并且我发现当我滚动它时,它倾向于“捕捉”回到之前的位置。UIScrollView倾向于“捕捉”回到之前的位置

我想模拟行为,如果UItableView的滚动,停留在用户释放他的手指的位置。

的属性设置:

[scroller setCanCancelContentTouches:NO]; 
scroller.clipsToBounds = YES; 
[scroller setScrollEnabled:YES]; 
scroller.userInteractionEnabled = YES; 
scroller.alwaysBounceHorizontal = YES; 
scroller.alwaysBounceVertical= NO; 
scroller.showsVerticalScrollIndicator = NO; 
scroller.scrollsToTop = NO; 
scroller.bounces = NO; 
scroller.pagingEnabled = NO; 

回答

1

有几个可能的快速返回的原因。

可能是因为您将pagingEnabled设置为YES,这意味着当用户放开手指时,它会捕捉到最接近的页面边界。

另一个问题是您的contentSize设置不正确。这不是问题,如果您实际上可以滚动到顶部和底部,并将其保留在那里而不会弹起。

+0

谢谢mahboudz!我粘贴了滚动条的配置,我只是改变了pagingEnabled,我得到了同样的行为:( 再次感谢:)亚历杭德拉 – 2009-10-05 17:02:20

+0

不客气,但我不知道我明白。这是否解决了您的问题?或者你需要更多的帮助? – mahboudz 2009-10-05 17:45:45

+0

你可以滚动到底部还是顶部,让它停留在那个位置还是总是弹开? – mahboudz 2009-10-05 18:17:45

0
- (void)scrollViewDidScroll:(UIScrollView *)sender { 
    int scrollDirection; 
    if (lastContentOffset > self.scrollView.contentOffset.x){ 
     scrollDirection = RIGHT; 



     NSLog(@"right"); 
    } 
    else if (lastContentOffset < self.scrollView.contentOffset.x) { 
     scrollDirection = LEFT; 
     NSLog(@"left"); 
     lastContentOffset = self.scrollView.contentOffset.x; 



    } 

} 

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 

    lastContentOffset = self.scrollView.contentOffset.x; 

} 
+0

嗨,你能不能把一些评论以及代码? – user1211929 2012-11-20 10:09:04