Ios 是否有方法固定MKMapView的中心点,特别是当用户更改缩放级别时?
我试图在一个点上有一个地图视图中心,这样用户可以顺利地放大和缩小,但仍保持在该点的中心 当调用regionDidChangeAnimated时,通过将贴图居中,加上一个标志来停止代码无限循环,我得到了一个不太理想的解决方案Ios 是否有方法固定MKMapView的中心点,特别是当用户更改缩放级别时?,ios,mkmapview,Ios,Mkmapview,我试图在一个点上有一个地图视图中心,这样用户可以顺利地放大和缩小,但仍保持在该点的中心 当调用regionDidChangeAnimated时,通过将贴图居中,加上一个标志来停止代码无限循环,我得到了一个不太理想的解决方案 -(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated { if (!self.isRecentring) { self.isRecentring = YES
-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
if (!self.isRecentring) {
self.isRecentring = YES;
[mapView setCenterCoordinate:self.centreLocation animated:YES];
self.isRecentring = NO;
}
}
因此,这是可行的,但只有在用户完成更改缩放后才起作用,这意味着之后有一个快速滚动来重新定位地图
我尝试过regionWillChangeAnimated的等效方法,但这只会扼杀zoom dead,我想是因为我的SetCentreCoordination设置了一个新的区域并结束了缩放手势
有什么办法可以解决这个问题并保持中心点的中间缩放吗?我知道这很旧,但我想出了一个解决方案,似乎没有任何渲染问题
滚动启用
、缩放启用
和旋转启用
设置为falseUIPinchGestureRecognitor
recognizer.state==.start
来检测此问题recognizer.state==.changed
时,将起始区域的span.longitudeDelta
和span.latitudeDelta
乘以recognizer.scale
,并执行mapView.setRegion
,不带动画设置
scrollEnabled=NO
有效吗?不,抱歉-scrollEnabled=NO没有乐趣。该区域似乎仍然围绕着用户启动缩放手势的点。相关:感谢您的建议,但他们也没有这样做。第一个解决方案是针对用户的当前位置编写的(当我将其修改为使用其他位置时,它完全停止了缩放工作)。第二种解决方案没有即时反馈(仅在结束捏手动作时调整大小并集中于此),因此在我看来,这几乎和我上面的方法一样不雅观。你有没有找到解决方案?这会使我的缩放效果相反;扩展缩小,收缩放大。