0

に複数の長方形を作成する次のコードがあります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()は内部のみですdrawRect:。drawRect の外側のレイヤーに描画できますがdrawRect:、実際に表示したい場合は、そのレイヤーをビューに描画する必要があります。

于 2012-07-09T05:31:39.770 に答える