您需要将原点转换为要旋转的点,执行旋转,然后将原点转换回原点:
@implementation NSAffineTransform (Rotation)
+ (NSAffineTransform *)transformRotatingAroundPoint:(NSPoint) p byDegrees:(CGFloat) deg
{
NSAffineTransform * transform = [NSAffineTransform transform];
[transform translateXBy: p.x yBy: p.y];
[transform rotateByDegrees:deg];
[transform translateXBy: -p.x yBy: -p.y];
return transform;
}
@end
Run Code Online (Sandbox Code Playgroud)