我试图在我的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);
}
答案 0 :(得分:1)
将图像添加为背景视图是正确的方法。问题在于您将图像直接添加到视图中。子视图显示在视图的顶部,而不是在视图的后面。正确使用容器视图将图像视图保存为背景,然后使用线条图视图。
答案 1 :(得分:1)
您可以尝试将(不透明)线绘制到透明CALayer,并将该CALayer放在UIView的顶部,从而在背景UIImage之上。