当手指在iPhone上移动时,如何在图像上绘制一条线

时间:2010-12-01 01:47:12

标签: iphone

我试图在我的UIView中的背景图像上画一条线来追踪用户手指的动作。我可以通过绘制UIImage作为我的背景,然后在drawRect中绘制线条来实现这一点,但每次调用drawRect时我都必须加载图像,这会使性能变得迟钝。或者,如果我使用UIImageView作为我的背景图像(只是将其添加到IB中的视图或以编程方式添加),则当它拖过图像时线条会消失。有没有办法告诉在UIImageView上绘制线条。谢谢你的帮助。

这是我使用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);
}

2 个答案:

答案 0 :(得分:1)

将图像添加为背景视图是正确的方法。问题在于您将图像直接添加到视图中。子视图显示在视图的顶部,而不是在视图的后面。正确使用容器视图将图像视图保存为背景,然后使用线条图视图。

答案 1 :(得分:1)

您可以尝试将(不透明)线绘制到透明CALayer,并将该CALayer放在UIView的顶部,从而在背景UIImage之上。