TableView có thuộc tính scrollView
, Thuộc tính này sẽ trả về cuộn nội bộView của TableView. Sử dụng sau ...
tableview.scrollView.decelerationRate = UIScrollViewDecelerationRateFast;
một cách khác:
TableView sẽ trả lời scrollview đại biểu, vì vậy chúng tôi cần phải thực hiện đại diện scrollview của như:
Thực hiện các biến toàn cục:
CGPoint lastOffset;
NSTimeInterval lastOffsetCapture;
BOOL isScrollingFast;
Triển khai scrollViewDidScroll
như:
- (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;
}
}
Sau đó thực hiện scrollViewDidEndDragging
như thế này:
- (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];
}
}
Hy vọng điều này có thể giúp bạn ...
Nguồn
2015-06-11 05:00:07
Tại sao bạn nghĩ Instagram đang làm một cái gì đó đặc biệt? Tôi không gặp phải bất kỳ giới hạn tốc độ di chuyển nào khi cố gắng tái tạo. – thelaws
@thelaws nó chắc chắn cuộn chậm nhất bằng cách nào đó. Khi bạn cuộn qua nguồn cấp dữ liệu như bình thường và thử và cuộn qua một nguồn cấp dữ liệu khác trong ứng dụng khác, thì Instagram có vẻ mượt mà hơn nhiều. –
Có vẻ như nó rất mịn, nhưng không hề chậm. – k06a