UIRotationGestureRecognizer - 围绕锚点旋转

sol*_*eil 5 gesture-recognition uiview uigesturerecognizer ios

这是我当前的手势识别器实现:

- (IBAction)handleRotate:(UIRotationGestureRecognizer *)recognizer {

if([recognizer state] == UIGestureRecognizerStateEnded) {

    _lastRotation = 0.0;
    return;
}

CGFloat rotation = 0.0 - (_lastRotation - [recognizer rotation]);

CGAffineTransform currentTransform = self.container.transform;
CGAffineTransform newTransform = CGAffineTransformRotate(currentTransform,rotation);

[self.container setTransform:newTransform];

_lastRotation = [recognizer rotation];

}
Run Code Online (Sandbox Code Playgroud)

工作良好.问题是self.container总是围绕它的中心旋转.我希望它围绕两个触摸的中点旋转,这样如果你放大了,你可以围绕你正在触摸的区域旋转.我该怎么做呢?

Mic*_*lum 0

我不太确定是否可以将一个点设置到正在旋转的对象的边界之外,但是您的容器图层属性将允许您从变换中指定锚点。

它接受从左上角到右下角 0.0-1.0 的值。

#import <QuartzCore/QuartzCore.h>

[[container layer] setAnchorPoint:myCGPoint];
Run Code Online (Sandbox Code Playgroud)