我创建了折线图。现在,当我点击屏幕时,我需要在此图表上显示点。
什么是最好的方法?我是否需要再次调用drawRect
方法,绘制带有标记点的整个图表?
我在考虑图表UIView
上的透明图层。
我可以创建另一个透明UIView
并将其放在我的图表位置吗?
答案 0 :(得分:1)
由于所有绘图都是在视图drawRect:
中完成的,因此您只能优化图表的绘图,以便只更新其中的一部分并使用setNeedsDisplayInRect:
(通过标记所在的区域)定)。
或者您创建了另一个UIView子类,它位于图表的顶部,除了在透明背景上绘制标记之外什么都不做。实施起来可能更容易,更快捷。它还有另一个好处:
如果您使视图仅与标记的边界框一样大,您也可以轻松地为其设置动画,例如淡入淡出。或者让它稍微旋转一下(看看我想到的效果,在Mac OS X中选择“帮助”菜单,在搜索栏中输入类似“a”的内容,然后看一下菜单项旁边的标记移动一点在一个地方附近)。
答案 1 :(得分:0)
您可以使用setNeedsDisplayInRect:
绘制部分视图。