TableView ha una proprietà scrollView
, questa proprietà restituirà scrollView interno di TableView. Usa dopo ...
tableview.scrollView.decelerationRate = UIScrollViewDecelerationRateFast;
altro modo:
TableView risponderà alle ScrollView delegato, quindi abbiamo bisogno di implementare il delegato di ScrollView come:
Prendete queste variabili globali:
CGPoint lastOffset;
NSTimeInterval lastOffsetCapture;
BOOL isScrollingFast;
Implementare scrollViewDidScroll
come:
- (void) scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint currentOffset = scrollView.contentOffset;
NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate];
NSTimeInterval timeDiff = currentTime - lastOffsetCapture;
if(timeDiff > 0.1) {
CGFloat distance = currentOffset.y - lastOffset.y;
//The multiply by 10,/1000 isn't really necessary.......
CGFloat scrollSpeedNotAbs = (distance * 10)/1000; //in pixels per millisecond
CGFloat scrollSpeed = fabsf(scrollSpeedNotAbs);
if (scrollSpeed > 0.5) {
isScrollingFast = YES;
NSLog(@"Fast");
} else {
isScrollingFast = NO;
NSLog(@"Slow");
}
lastOffset = currentOffset;
lastOffsetCapture = currentTime;
}
}
quindi implementare scrollViewDidEndDragging
come questo:
- (void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
if(!decelerate)
{
NSUInteger currentIndex = (NSUInteger)(scrollView.contentOffset.x/scrollView.bounds.size.width);
[scrollView setContentOffset:CGPointMake(scrollView.bounds.size.width * currentIndex, 0) animated:YES];
}
}
Spero che questo può aiutare ...
fonte
2015-06-11 05:00:07
Perché pensi che Instagram sta facendo qualcosa di speciale? Non provo alcun limite di velocità di scorrimento quando provo a riprodurre. – thelaws
@thithow sicuramente scorre più lento in qualche modo. Quando scorri il feed come faresti normalmente e provi a scorrere un altro feed in un'altra app, Instagram sembra molto più fluido. –
Sembra che sia molto fluido, ma non lento affatto. – k06a