好的,我有一个地图加载了来自远程JSON提要的引脚,它被加载到应用程序中。一切正常。
现在,从最初的实验regionDidChangeAnimated
被多次调用,所以我将我的帖子请求移动到一个方法,该方法使用拖动地图手势识别器,然后执行发布请求以从JSON提要中获取数据并重新加载我的地图去掉它们后的针脚。这也很有效。
现在我唯一的问题是,如果我选择一个靠近屏幕边缘的注释,地图会稍微移动以适应注释标注的显示。问题是regionDidChangeAnimated
在发生这种情况时被调用,但是我的发布请求不是因为我使用手势识别器调用它,因此地图不会被用户干预而是移动操作系统。我不希望将我的Post请求移动到regionDidChangeAnimated
,因为这被多次调用,但我想知道是否有办法进行测试,如果用户导致地图移动或它做到了 - 如上所述,自我适应标注。我所研究的研究中的regionDidChangeAnimated
可能被调用的时间超过了必要的次数,因此一些指导对于如何防止或检测用户交互与操作系统移动地图有好处。
答案 0 :(得分:2)
我遇到了类似的问题:我想区分地图的显示部分是否已被程序或用户交互更改。显然,MKMapView
个对象并没有这样告诉我,即两个案例都调用regionDidChangeAnimated
而没有指示原因。
但由于MKMapView
是UIView
的子类,而UIResponder
是touchesBegan:withEvent:
的子类,因此可以实现方法touchesEnded:withEvent:
和{{1}}来查找地图在更改显示区域时触摸了
如果是这样,可以假设显示区域的变化是由用户交互引起的。当然,如果你更精确地研究这些方法的触摸和事件类型,你可以更具体。
答案 1 :(得分:0)