iPhone:在自定义视图中,如何在视图中的其他所有内容上绘制内容?

时间:2010-12-20 06:29:10

标签: iphone objective-c

所以我创建了一个UIView子类,让我们称它为'MyView',它只是在DrawRect方法中绘制一条线。

然后我在界面构建器中拖动UIImageView并将其放在MyView中。但是现在当我运行该程序时,它模糊了我正在绘制的线条。我想知道,有没有办法在我拖入视图的图像上绘制线条?

3 个答案:

答案 0 :(得分:1)

不,您必须重新组织视图层次结构。 CoreGraphics使用画家模型,因此后面的观点将始终被前面的观点所吸引。要解决此问题,您可以使用容纳图像视图的容器视图,并在图像视图上方具有透明视图(线条图视图)。

另一种选择是使用drawRect方法中的核心图形调用绘制图像,然后在其上绘制线条。

答案 1 :(得分:0)

一种方法是在MyView之上添加UIImageView添加MyView。它并不理想(您可能有充分的理由将MyViewUIImageView保留在一个班级中,但绝对可以解决您的问题(我最近这样做了,只是,我将其添加到{{1} } =)

答案 2 :(得分:0)

我会使用一个CAShapeLayer,它有一个表示该行的路径,并在内置视图层之前插入该层。然后它应该在顶部绘制。