gpt4 book ai didi

ios - 有没有办法固定 MKMapView 的中心点,特别是当用户更改缩放级别时?

转载 作者:行者123 更新时间:2023-12-01 15:51:39 52 4
gpt4 key购买 nike

我试图让 map View 以一点为中心,以便用户可以平滑地放大和缩小但仍以该点为中心。

我通过在调用 regionDidChangeAnimated 时将 map 居中以及阻止代码无限循环的标志来获得一个不太理想的解决方案...

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
if (!self.isRecentring) {
self.isRecentring = YES;
[mapView setCenterCoordinate:self.centreLocation animated:YES];
self.isRecentring = NO;
}
}

所以,这是可行的,但只有在用户完成缩放比例更改后才会起作用,这意味着之后可以快速滚动以重新定位 map 。

我已经尝试过使用 regionWillChangeAnimated 进行等效操作,但这只会让缩放死机,我猜是因为我的 setCentreCoordinate 设置了一个新区域并结束了缩放手势?

关于如何解决此问题并在缩放过程中保持中心点有什么想法吗?

最佳答案

我知道这是旧的,但我想出了一个似乎没有任何渲染问题的解决方案。

  1. 在 mapView 上将 scrollEnabledzoomEnabledrotateEnabled 设置为 false
  2. 在 map View 中添加一个UIPinchGestureRecognizer
  3. 在捏合手势识别器处理程序中,保存手势开始处的区域。您可以使用 recognizer.state == .began 来检测这一点。
  4. 在捏合手势识别器处理程序中,当 recognizer.state == .changed 时,将起始区域的 span.longitudeDeltaspan.latitudeDelta 相乘> 通过 recognizer.scale 并执行没有动画的 mapView.setRegion

关于ios - 有没有办法固定 MKMapView 的中心点,特别是当用户更改缩放级别时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23637467/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com