IOS Quartz 2D drawRect和Resizing

时间:2012-06-23 13:05:30

标签: ios drawrect cgcontext

我正在使用一个名为Quarkee的应用程序将徽标从SVG转换为Quartz 2d代码,这是一种享受。唯一的问题是我似乎无法弄清楚如何调整结果的大小。如果我设置UIView的帧,则drawRect的结果在帧中保持很大。如何将其设置为我正在设置的框架尺寸?

以下是一个例子。

有人可以帮忙吗?

- (void)drawRect:(CGRect)rect
{

CGContextRef context = UIGraphicsGetCurrentContext();
CGColorSpaceRef colorspace_1 = CGColorSpaceCreateDeviceRGB();
CGFloat components_1[] = {0.9961,0.9961,0.9961, 1.0000};
CGColorRef color_1 = CGColorCreate(colorspace_1, components_1);
CGContextSetFillColorWithColor(context,color_1);

CGContextMoveToPoint(context, 0.4960,0.1090);
CGContextAddLineToPoint(context,662.9260,0.1090);
CGContextAddLineToPoint(context,662.9260,227.8780);
CGContextAddLineToPoint(context,0.4960,227.8780);
CGContextAddLineToPoint(context,0.4960,0.1090);
CGContextClosePath(context);


CGContextFillPath(context);

2 个答案:

答案 0 :(得分:1)

这里的解决方案是使用view.transform = CGAffineTransformMakeScale(0.5f,0.5f);调整视图大小

答案 1 :(得分:0)

看看这些值:

CGContextMoveToPoint(context, 0.4960,0.1090);
CGContextAddLineToPoint(context,662.9260,0.1090);
CGContextAddLineToPoint(context,662.9260,227.8780);
CGContextAddLineToPoint(context,0.4960,227.8780);
CGContextAddLineToPoint(context,0.4960,0.1090);

调用drawRect方法后,您可以使用self.bounds获取视图的当前矩形并根据它调整这些值。你说你已经从应用程序生成了这个代码 - 这些应用程序通常硬编码你绘制的图形的大小,生成代码时,所以你必须看到这些值与你绘制的图像的实际大小之间的关系是什么根据{{​​1}}尺寸......

让它们动态化