- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
double curCallOffset = scrollView.contentOffset.x;
double direction = curCallOffset - prevCallOffset;
double curCallTime = CACurrentMediaTime();
double timeDelta = curCallTime - prevCallTime;
double offsetDelta = curCallOffset - prevCallOffset;
double velocity = fabs(offsetDelta / timeDelta );
if(velocity > 3000) velocity =3000;
NSLog(@"%f",velocity);
prevCallTime = curCallTime;
prevCallOffset = curCallOffset;
if (direction > 0) {
CATransform3D rotationAndPerspectiveTransform =CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 =1.0 / -500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, (velocity/3000)*(-45.0f *M_PI) / 180.0f, 0.0f, 1.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;
layer2.transform = rotationAndPerspectiveTransform;
layer3.transform = rotationAndPerspectiveTransform;
layer4.transform = rotationAndPerspectiveTransform;
layer5.transform = rotationAndPerspectiveTransform;
layer6.transform = rotationAndPerspectiveTransform;
layer7.transform = rotationAndPerspectiveTransform;
}
else if (direction <0)
{
CATransform3D rotationAndPerspectiveTransform =CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 =1.0 / -500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, (velocity/3000)*(45.0f *M_PI) / 180.0f, 0.0f, 1.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;
layer2.transform = rotationAndPerspectiveTransform;
layer3.transform = rotationAndPerspectiveTransform;
layer4.transform = rotationAndPerspectiveTransform;
layer5.transform = rotationAndPerspectiveTransform;
layer6.transform = rotationAndPerspectiveTransform;
layer7.transform = rotationAndPerspectiveTransform;
}
}
prevCallTime/prevCallOffset设置为全局变量,基于scrollViewDidScroll的实时动态行为,该变量并不用初始化。