在没有drawRect的情况下在现有UIView上绘制线/点?

时间:2010-10-26 13:27:10

标签: iphone objective-c ios layer drawrect

我创建了折线图。现在,当我点击屏幕时,我需要在此图表上显示点。 什么是最好的方法?我是否需要再次调用drawRect方法,绘制带有标记点的整个图表?

我在考虑图表UIView上的透明图层。 我可以创建另一个透明UIView并将其放在我的图表位置吗?

2 个答案:

答案 0 :(得分:1)

由于所有绘图都是在视图drawRect:中完成的,因此您只能优化图表的绘图,以便只更新其中的一部分并使用setNeedsDisplayInRect:(通过标记所在的区域)定)。

或者您创建了另一个UIView子类,它位于图表的顶部,除了在透明背景上绘制标记之外什么都不做。实施起来可能更容易,更快捷。它还有另一个好处:

如果您使视图仅与标记的边界框一样大,您也可以轻松地为其设置动画,例如淡入淡出。或者让它稍微旋转一下(看看我想到的效果,在Mac OS X中选择“帮助”菜单,在搜索栏中输入类似“a”的内容,然后看一下菜单项旁边的标记移动一点在一个地方附近)。

答案 1 :(得分:0)

您可以使用setNeedsDisplayInRect:绘制部分视图。