2013-04-04 46 views
0

我有一个问题,我想在水平滚动视图中对图像进行一点旋转动画。他们应该在滑入和滑出时旋转。有没有人有任何想法如何做到这一点?当我滚动时,我希望它们旋转。在图像上的水平滚动视图中的旋转动画Obj-c

我用尽的东西,但是当我滚动(仅第一个图像)不旋转 我做了这样的事情:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    int page = scrollView.contentOffset.x/scrollView.frame.size.width; 
    UIImageView *view = [scrollView.subviews objectAtIndex: page]; 

    if(scrollView.contentOffset.x > lastX) 
    { 
     NSLog(@"scroll right"); 
     [view setTransform: CGAffineTransformMakeRotation(M_PI/scrollView.contentOffset.x + 0.1)]; 

    } 
    else if(scrollView.contentOffset.x < lastX) 
    { 
     NSLog(@"scroll left"); 
     [view setTransform: CGAffineTransformMakeRotation(M_PI/scrollView.contentOffset.x - 0.1)]; 
    } 
    else 
    { 
    } 
+0

但是,您可以使用scrollview的contentOffset的x坐标。 – yinkou 2013-04-04 09:57:16

回答

0

你可以使用CGAffineTransformRotate。 但是在你必须设置imageView的锚点之前。默认情况下,它被设置为(0.5,0.5),即图像将从中心旋转。

[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 
    imageView.transform= CGAffineTransformMakeRotation(degreeInRadians); // -- 2 -- 
} completion:^(BOOL finished){ 
    // left blank 
}]; 
+0

在动画块中旋转一定程度,如imageView.transform = CGAffineTransformMakeRotation(-pi/3);然后在完成块中将其旋转回正常状态,如[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^ {imageObjects.transform = CGAffineTransformMakeRotation(0); } completion:nil]; – 2013-04-04 10:47:10

+0

我想滚动时图像旋转。不只是一次。 – Jojo 2013-04-04 13:26:03