2015-08-13 3 views
0

Я пытаюсь переместить вид, пока прокрутка просматривается с той же интенсивностью.Как я могу получить, как движется Scrollview?

Пытаюсь:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
// here I detect when user scroll 
} 

Как я мог получить интенсивность, что Scrollview настоящее время прокручивается?

ответ

0

Попробуйте использовать эти методы:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
{ 
//scrolling on 
    NSLog(@"scrollViewWillBeginDragging"); 
} 

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 
{ 
    if(!decelerate) { 
    //not scrolling 
    } 
    NSLog(@"scrollViewDidEndDragging"); 
} 
0

Вы можете сделать это путем чтения contentOffset собственности на scrollView

// You can save this as a property or an iVar 
CGPoint lastContentOffset; 
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ 
    lastContentOffset = scrollView.contentOffset; 
} 

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    CGPoint difference = CGPointSubstract(scrollView.contentOffset, lastContentOffset); 
    lastContentOffset = scrollView.contentOffset; 
    // Use difference to know by how much the scroll view scrolled 
    // IMPORTANT: CGPointSubstract is not a standard function, you can implement it yourself. 
} 
0

Я не хочу, чтобы дать вам полный код, но я» Помогите с его достижением.

1) You need to use the time. 
2) When the time difference is greater than an amount of time passed to measure (0.05s?) 
3) Check what the old content offset is compared to the new one 
4) The difference is your velocity 
5) reset your current timer 
6) set current offsets to last offset 

Надеется, что это помогает Бен

distance calcs 
CGFloat distanceY = currentOffset.y - lastOffset.y; 
CGFloat distanceX = currentOffset.X - lastOffset.X; 
Смежные вопросы