4

好的,所以我有一个加载了远程 JSON 提要的引脚的地图,该提要已加载到应用程序中。这一切都很好。

现在从最初的实验开始regionDidChangeAnimated被多次调用,所以我将我的发布请求移动到使用拖动地图手势识别器的方法,然后执行发布请求以从 JSON 提要获取数据并在删除它们后重新加载我的地​​图图钉。这也很完美。

现在我剩下的唯一问题是,如果我选择靠近屏幕边缘的注释,地图会稍微移动以适应注释标注的显示。发生这种情况时会调用问题regionDidChangeAnimated,但是我的发布请求不像我使用手势识别器调用它那样,因此地图不是由用户干预而是由操作系统移动的。我不想将我的 Post 请求移动到,regionDidChangeAnimated因为这会被多次调用,但我想知道是否有办法进行测试,如果用户导致地图移动或者它自己做了以适应标注如上所述。我看过的 regionDidChangeAnimated研究可能会比必要的调用次数更多,因此一些指导会很好地说明如何防止这种情况或检测用户交互与操作系统移动地图。

4

2 回答 2

2

我有一个类似的问题:我想区分地图的显示部分是否已被程序或用户交互更改。显然,MKMapView对象并没有告诉我,即regionDidChangeAnimated在两种情况下都没有说明原因。
但是由于MKMapView是 的子类UIView,并且是 的子类,因此UIResponder可以实现这些方法touchesBegan:withEvent:touchesEnded:withEvent:找出在显示区域的变化过程中是否触摸了地图。
如果是这样,可以假设显示区域的变化是由用户交互引起的。当然,如果您更精确地研究这些方法的触摸集和事件类型,您可以更具体。

于 2013-03-22T15:08:15.653 回答
0

我是这样一个木板,有时写作问题会有所帮助。我只是删除了 regionDidChangeAnimated ,因为我不需要它,并且那里的代码我移到了我的手势上,即在重新添加它们之前删除注释 doh!

于 2013-01-22T18:08:17.767 回答