2010-12-01 4 views
0

UIViewで背景の上に線を引いて、ユーザーの指の動きをトレースしようとしています。 UIImageをバックグラウンドで描画し、drawRectで線画を描くことでこれを達成できますが、drawRectが呼び出されるたびにイメージをロードしなければならず、パフォーマンスが低下します。代わりに、UIImageViewをバックグラウンドイメージとして使用している場合(IBまたはプログラムでビューに追加するだけで)、イメージがドラッグされると線が消えます。線がUIImageViewの上に描画するように指示する方法はありますか?ご協力いただきありがとうございます。背景ビューがそれを行うための正しい方法があるよう指がiPhone上を動くときに画像の上に線を描く方法

- (void)drawRect:(CGRect)rect { 
    UIImage *imageField = [UIImage imageNamed:@"field.jpg"]; 
    CGRect rectForImage=CGRectMake(0,0,200,200); 
    [imageField drawInRect:rectForImage]; 

     CGContextRef context = UIGraphicsGetCurrentContext(); 
     CGContextMoveToPoint(context, x1, y1); 
    CGContextAddLineToPoint(context, x2, y2); 
    CGContextStrokePath(context); 
} 

答えて

1

画像を追加:

はここでUIImageの方法を使用して私のコードです。問題はビューに直接イメージを追加したことにあります。サブビューはビューの上に表示され、ビューの後ろには表示されません。イメージビューを背景として保持しているコンテナビューを正しく使用し、その上にライン描画ビューを使用します。

+0

Davidさん、ありがとうございます。魅力のように働いた。 (新しいビューでOpaqueプロパティをNOにします)。 – JMH

1

透明なCALayerに(不透明な)線を描画し、UIViewの上にそのCALayerを配置して、背景UIImageの上に配置することができます。