我需要知道是否由于缩放或平移而发生了regionWillChangeAnimated。
我能够通过跟踪旧区域范围并与新区域范围进行比较来查看是否发生了缩放,从而为regionDidChangeAnimated解决了这个问题。
regionWillChangeAnimated的问题是在区域更改之前调用它,所以我无法知道区域跨度是什么。
还有另外一种方法可以解决这个问题吗?
感谢。
答案 0 :(得分:1)
我相信你需要在regionWillChangeAnimated调用中获取当前区域跨度和中心数据,并在进入regionDidChangeAnimated调用后对其进行比较,但不要在那里做太多逻辑,否则会导致用户交互不稳定。
答案 1 :(得分:1)
您必须将地图的当前范围与mapView:regionWillChangeAnimated:
中的前一范围进行比较,在缩放或滚动期间会多次调用该范围。
您可以使用breadcrumb sample project:MKZoomScale currentZoomScale = (CGFloat)(map.bounds.size.width / map.visibleMapRect.size.width);
答案 2 :(得分:0)
我没有评论的声誉限额,但感到需要警告:您不能仅使用地图的区域范围来确定是否发生了缩放。对于恒定的缩放级别,地图的水平比例会根据纬度而变化。