3

我正在尝试找出一种添加或附加路径(我已经创建)的方法,并且能够以某种方式设置绘制路径的位置。

这是我正在谈论的一个例子:

//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];

任何想法,将不胜感激。

4

1 回答 1

3

您不能更改路径中的点;他们已经设置好了。但是,您可以对上下文应用变换,而是更改坐标系。

您的路径定义了一个在原点 (0,0) 有一个角的矩形。默认情况下,原点位于图像的左上角(或左下角)。如果将上下文的坐标系平移 50,50,然后绘制路径(仍然在 0,0),它将出现在距离角点 50 像素的位置。

CGContextTranslateCTM在文档中查找。

如果您正在进行其他绘图并且需要撤消坐标系更改,CGContextSaveGState您可能还需要使用。CGContextRestoreGState

于 2012-04-25T23:03:48.037 回答