UIScrollView のスクロールに基づいてホイールをスムーズに回転させようとしています。スクロールビューのスクロールがほとんど停止したときに緩和したいと思います。
私は多くのことを試みましたが、これまでのところ失敗しました。現在のコードは次のとおりです。
#pragma mark - Scrollview delegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat pageWidth = scrollView.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
NSLog(@"Offset: %@ Page: %i", NSStringFromCGPoint(scrollView.contentOffset), page);
UIImageView* leftWheelImageView = (UIImageView*)[self.carImageView viewWithTag:10];
// Calculate speed of scrolling and turn the wheels to it
CGPoint currentOffset = scrollView.contentOffset;
NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate];
if(lastTime - currentTime > 0.1) {
CGFloat distance = currentOffset.x - lastOffset.x;
CGFloat scrollSpeedNotAbs = (distance * 10) / 1000; //in pixels per millisecond
CGFloat scrollSpeed = fabsf(scrollSpeedNotAbs);
leftWheelImageView.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(2*3.14*99));
NSLog(@"Rotate wheel");
}
lastOffset = currentOffset;
lastTime = currentTime;
}
誰かが私を正しい方向に押してくれませんか:-)?