当手指在 iPhone 上移动时如何在图像顶部画一条线
Posted
技术标签:
【中文标题】当手指在 iPhone 上移动时如何在图像顶部画一条线【英文标题】:How to draw a line on top of an image when finger moves on iPhone 【发布时间】:2010-12-01 01:47:12 【问题描述】:我试图在 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);
【问题讨论】:
【参考方案1】:将图像添加为背景视图是正确的方法。问题在于您将图像直接添加到视图中。子视图显示在视图的顶部,而不是其后面。正确使用将图像视图作为背景的容器视图,然后在其上使用您的画线视图。
【讨论】:
谢谢大卫。像魅力一样工作。 (在新视图上将 Opaque 属性设置为 NO)。【参考方案2】:您可以尝试将您的(不透明的)线条绘制到透明的 CALayer 上,然后将该 CALayer 放在您的 UIView 顶部,从而在背景 UIImage 上方。
【讨论】:
以上是关于当手指在 iPhone 上移动时如何在图像顶部画一条线的主要内容,如果未能解决你的问题,请参考以下文章