【发布时间】:2012-07-03 10:59:58
【问题描述】:
我正在尝试根据 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;
}
谁能把我推向正确的方向:-)?
【问题讨论】:
-
用
scrollViewDidEndDecelerating怎么样? -
好吧,我可以在 didscroll 方法中获得速度。我想以此为基础进行轮换。也许如果你有一些 sn-ps 我可以看看你的意思
-
我可以向您推荐一个很好的库,我认为它会让您的问题变得更容易。
-
用户会滚动滚动视图还是自动滚动? (即可预测)。
-
需要两者兼得
标签: iphone objective-c ios xcode uiscrollview