想要实现一个让一张图片围绕中心点旋转的功能。自己用UIPanGestureRecognizer手势实现了一个,通过计算手势移动的位置,计算出手指距图片中心点的偏移度,然后让UIImageView偏移相同的度数即可。测试了一下,发现虽然图片旋转了,但是中心点看起来好像一直在变化,将中心点的坐标打印出来却没有变化,可能是图片是方形的原因,下次用圆形图片尝试一下。
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panView:)];
[_imageView addGestureRecognizer:pan];
- (void)panView:(UITapGestureRecognizer*)pan {
   CGAffineTransform startTransform;
   CGPoint point = [pan locationInView:self.view];
   NSLog(@"point = %@", NSStringFromCGPoint(point));
   //计算偏转角度
   float deflectionAngle = atan2(point.y-_imageView.frame.origin.y, point.x-_imageView.frame.origin.x);
   switch (pan.state) {
     case UIGestureRecognizerStateBegan:
       startTransform = _imageView.transform;
       break;
     case UIGestureRecognizerStateChanged:
       _imageView.transform = CGAffineTransformRotate(startTransform, deflectionAngle);
       break;
     case UIGestureRecognizerStateEnded:
       break;
     default:
       break;
   }
}
原文:http://www.cnblogs.com/rgshio/p/4958380.html