【发布时间】:2010-10-26 13:27:09
【问题描述】:
我创建了折线图。现在,当我点击屏幕时,我需要在此图表上显示点。
最好的方法是什么?是否需要再次调用drawRect方法,用标记点绘制整个图表?
我正在考虑图表UIView 上的透明层之类的东西。
我可以创建另一个透明的UIView 并将其放在我的图表位置吗?
【问题讨论】:
标签: iphone objective-c ios layer drawrect
我创建了折线图。现在,当我点击屏幕时,我需要在此图表上显示点。
最好的方法是什么?是否需要再次调用drawRect方法,用标记点绘制整个图表?
我正在考虑图表UIView 上的透明层之类的东西。
我可以创建另一个透明的UIView 并将其放在我的图表位置吗?
【问题讨论】:
标签: iphone objective-c ios layer drawrect
由于所有绘图都是在视图的drawRect: 中完成的,因此您只能优化图表的绘图,以便仅更新其中的一部分并使用setNeedsDisplayInRect:(通过标记应该在的区域)。
或者您创建另一个 UIView 子类,该子类位于图表顶部,除了在透明背景上绘制标记之外什么都不做。可能更容易和更快地实施。它还有另一个好处:
如果您使该视图仅与标记的边界框一样大,您还可以轻松地对其进行动画处理,例如淡入淡出。或者让它旋转一点(要查看我想到的效果,请在 Mac OS X 中选择“帮助”菜单,在搜索字段中键入“a”之类的内容,然后查看菜单项旁边的标记移动一点一个点)。
【讨论】:
您可以使用setNeedsDisplayInRect: 绘制视图的一部分。
【讨论】: