【问题标题】:Stop inertia scroll of MKMapView停止 MKMapView 的惯性滚动
【发布时间】:2013-07-02 08:15:38
【问题描述】:

这就是问题所在:我有我的MKMapViewscrollEnabled=YESzoomEnabled=YES,我有一个按钮可以将某些特定区域设置为地图并设置scrollEnabled=NOzoomEnabled=NO

当我点击那个按钮时一切正常。但是,如果我稍微滚动一下地图,它会因为惯性而开始进一步滚动,然后在地图继续滚动时点击我的按钮,我会卡在地图在惯性滚动期间滚动到的区域中。

如果有帮助,这里有一些代码:

- (void)openMap
{
    MKMapView * mapView = self.contentView.locationView.mapView;
    mapView.scrollEnabled = YES;
    mapView.zoomEnabled = YES;
}

- (void)closeMap
{
    MKMapView * mapView = self.contentView.locationView.mapView;
    mapView.scrollEnabled = NO;
    mapView.zoomEnabled = NO;
    CLLocationCoordinate2D coord = {self.event.eventLocation.latitude.floatValue, self.event.eventLocation.longitude.floatValue};
    mapView.region = MKCoordinateRegionMakeWithDistance(coord, 500, 500);
}

所以我想要的是能够在我按下按钮时立即停止 MKMapView 的惯性滚动。

【问题讨论】:

  • 我无法重现此错误,您能否澄清以下问题: 1. 您在设备或模拟器上进行测试? 2.iOS版
  • @Numeral,我在 iOS 6.1.3 的设备上测试

标签: ios objective-c scroll mkmapview


【解决方案1】:

这似乎是 MKMapView 实现的一个错误。我唯一的解决方案是在 closeMap 方法中重新创建地图。

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[self addMap];
}

- (void)addMap {

self.map = [[MKMapView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview:self.map];
[self.view sendSubviewToBack:self.map];
}


- (void)recreateMap {

[self.map removeFromSuperview];
self.map = nil;
[self addMap];
}


- (void)openMap
{
MKMapView * mapView = self.map;
mapView.scrollEnabled = YES;
mapView.zoomEnabled = YES;
}


- (void)closeMap {

[self recreateMap];
MKMapView * mapView = self.map;
mapView.scrollEnabled = NO;
mapView.zoomEnabled = NO;
CLLocationCoordinate2D coord = {self.event.eventLocation.latitude.floatValue, self.event.eventLocation.longitude.floatValue};
mapView.region = MKCoordinateRegionMakeWithDistance(coord, 500, 500);
}

【讨论】:

  • 嗯,问题是我在 closeMap 和 openMap 上对我的地图进行了缩放动画。我会尝试使用这种方法,看看它是如何工作的。谢谢。
  • 这对我来说似乎不是一个好的解决方案。我想做一些不那么野蛮的东西。仍然很想立即停止惯性滚动。
  • 我尝试了不同的解决方案,得出的结论是这个错误可能是由地图加载事件引起的(不是地图视图减速)。希望这会有所帮助。
猜你喜欢
  • 2015-12-20
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多