0

我有这段代码可以在 a 中创建多个矩形UIView

CGContextRef ctx = UIGraphicsGetCurrentContext();

CGContextSetLineWidth(ctx, 0.5);

CGContextSetStrokeColorWithColor(ctx, [UIColor blueColor].CGColor);

//newView.xPoints is always equal in count to the other two arrays below.    
for (int i = 0; i < [newView.xPoints count]; i++) 
{
    CGFloat tx = [[newView.xPoints objectAtIndex:i]floatValue];
    CGFloat ty = [[newView.yPoints objectAtIndex:i]floatValue];
    CGFloat charWidth = [[newView.charArray objectAtIndex:i]floatValue];

    CGRect rect = CGRectMake(tx, (theContentView.bounds.size.height - ty), charWidth, -10.5);
    CGContextAddRect(ctx, rect);
    CGContextStrokePath(ctx);
}

我试了一下,drawRect:效果很好。但是,我计划drawRect:用于其他目的。那么任何人都可以给我提示或提示如何在不使用的情况下做到这一点drawRect:吗?

4

2 回答 2

2

你不能。Inside ofdrawRect:是当前上下文进入屏幕的唯一时间。您必须使您的“其他目的”与此矩形绘图代码共存。

但是,您可以将此代码分解为另一个方法,只要它仅从内部调用即可drawRect:

于 2012-07-09T05:31:25.530 回答
2

你不能。唯一UIGraphicsGetCurrentContext()对您的视图有效的时间是 inside drawRect:drawRect:您可以绘制到 drawRect 之外的图层,但如果您想真正看到它 ,您仍然必须将该图层绘制到您的视图中。

于 2012-07-09T05:31:39.770 回答