【发布时间】:2012-02-16 19:54:09
【问题描述】:
我有一个子类 UIView (currentMapView),它使用从 XML 文件中提取的一系列 CGMutablePaths 绘制多个状态的地图。当用户点击某个状态时,填充颜色会从绿色变为紫色。现在,我使用 CGPathContainsPoint 找出哪个状态被实时点击,以报告哪个路径被点击,然后我设置该路径的填充颜色并使用 setNeedsDisplay 重新加载视图。我遇到的问题是我需要多次重复使用 currentMapView (不同的状态组),我不确定我应该如何跟踪用户点击了哪些路径,以便我可以在重新加载时再次为它们着色从 XML 文件查看。
这是我正在做的逐步示例:
-
currentMapView 从 XML 文件加载路径数据并绘制美国东部地图。
-
用户点击佛罗里达,它变成紫色(在使用 CGContextSetFillColorWithColor 设置佛罗里达路径的填充颜色后,我在 currentMapView 上调用了“setNeedsDisplay”)
-
用户点击北卡罗来纳,它变成紫色(在使用 CGContextSetFillColorWithColor 设置北卡罗来纳路径的填充颜色后,我在 currentMapView 上调用了“setNeedsDisplay”)
-
用户导航到另一个视图,我需要在 currentMapView 中绘制另一组状态(清除那里的内容)。
到目前为止一切正常。
-
当用户从第一步返回视图并且我再次绘制美国东部的地图时,我需要再次在佛罗里达州和北卡罗来纳州的路径上着色。
跟踪用户触摸过的路径的最佳方法是什么?
【问题讨论】:
标签: objective-c ios core-graphics