我试图想出一种方法来添加或追加一条路径(我已经做过),并且能够以某种方式设置路径绘制位置的位置。
这是我正在谈论的一个例子:
//everything here can be compiled in a regular UIViewController
//this example is very trivial but it illustrates basically what I want to do
CGRect preMadeRect = CGRectMake(0.0f, 0.f, 50.f, 50.f);
CGPathRef preMadePath = CGPathCreateWithEllipseInRect(preMadeRect, NULL);
UIGraphicsBeginImageContext(self.view.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
//I thought that maybe if I moved to a new point
//the path would respect the starting point as its new
//x and y coordinates
CGContextMoveToPoint(context, 50.f, 50.f);
//I am adding a path
//I want the path to be positioned at new coordinates
//within the context
CGContextAddPath(context, preMadePath);
CGContextStrokePath(context);
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *imageView = [[UIImageView alloc]initWithImage:resultImage];
[self.view addSubview: imageView];
任何想法都将不胜感激。
答案 0 :(得分:3)
您无法更改路径中的点数;他们定了。但是,您可以将变换应用于上下文,改为更改坐标系。
您的路径定义了一个矩形,其原点(0,0)有一个角。默认情况下,原点位于图像的左上角(或左下角)。如果你将上下文的坐标系翻译50,50,然后绘制路径(仍然是0,0),它将显示距离角落50个像素。
在文档中查找CGContextTranslateCTM
。
如果您正在进行其他绘图并且需要撤消坐标系更改,则可能还需要使用CGContextSaveGState
和CGContextRestoreGState
。