2010-12-01 68 views
0

我想在我的UIView中的背景圖像上繪製一條線,用於跟蹤用戶手指的移動。我可以通過繪製UIImage作爲我的背景,然後在drawRect中進行繪製來完成此任務,但是每次drawRect被調用時都必須加載圖像,並且會導致性能遲緩。或者,如果我使用UIImageView作爲背景圖像(只需將其添加到IB中的視圖或以編程方式),則當它拖動到圖像上時,線條消失。有沒有辦法讓這些線條在UIImageView的頂部繪製。謝謝你的幫助。如何在手指移動時在圖像上繪製一條線iPhone

下面是使用UIImage的方法,我的代碼:

- (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

添加圖像爲背景的看法是這樣做的正確方法。問題在於你直接將圖像添加到視圖。子視圖顯示在視圖的頂部,而不是在它後面。正確使用將圖像視圖保存爲背景的容器視圖,然後使用您的線圖視圖。

+0

謝謝大衛。像魅力一樣工作。 (在新視圖上將不透明屬性設置爲NO)。 – JMH 2010-12-01 22:44:29

1

您可以嘗試將您的(不透明)線繪製到透明CALayer,並將該CALayer放置在UIView的頂部,從而放置在背景UIImage的上方。

相關問題