gpt4 book ai didi

ios4 - map View 委托(delegate)方法 'mapView:regionDidChange:' 问题不调用

转载 作者:行者123 更新时间:2023-12-01 04:34:36 24 4
gpt4 key购买 nike

在我的应用程序中使用 map View 时,有时 MKMapKit 委托(delegate)方法 'mapView: regionDidChange' 不会调用。它仅在我拖动 map 时发生。但是当我放大或缩小时,它工作得很好。因此,它会产生与在拖动 map 时在 map 上放置新注释相关的问题。我在 mapView:regionDidChange:

中做了这段代码
int j=0;

-(void) mapView:(MKMapView *)mapsView regionDidChangeAnimated:(BOOL)animated{

zoomLevel = self.mapView.region.span.latitudeDelta;

if (![appDelegate internetConnected]){
return;
}

if (appDelegate.isMapViewRegionChanged) {
if (j==0) {
j++;
return;
}else{
j=0;
appDelegate.isMapViewRegionChanged = FALSE;
return;
}
}
[self callGetMapViewWithObject:nil];
}


/*
first boolean is to check Internet connection.

[appDelegate internetConnected]

Second condition is to return when we navigate from any view controller too map View controller.

appDelegate.isMapViewRegionChanged

Third is a method to place new annotations.

[self callGetMapViewWithObject:nil];

*/

我检查了所有条件和 bool 值,但我的编码不是这个错误的原因。所以可能是它与地区相关的改变方法。

因此,在将我的应用程序与 map 一起使用时,20% 的时间它的行为类似于理想(方法不调用)。

有人可以帮我解决这个问题吗?

提前致谢。

最佳答案

编辑 它随机中断,所以我现在再次调用该函数(撤消我在下面所说的内容),没有额外的更改......嗯,它有效。我觉得我在掷硬币。

我刚刚发生了这种情况,因为我有一个子类 MKMapView。我不知道你是否将其子类化,但出于某种原因,Apple 的 super 功能,例如: -(void) scrollViewDidScroll;调用了 super 但未被正确拦截并跳过了该调用。

当我删除“覆盖”调用时,这只是对 [super scrollView] 的调用,它开始正常工作。

我不知道为什么 apple 的代码会以这种方式被破坏(调用 super 没有覆盖它的相同效果),但请确保您没有将这些子类化: ScrollView 函数MKMapView 功能...或者可能使用 WildCard 手势识别器,它非常友善地提供了关于为什么 map View 不响应 touchesBegan/Moved 等的答案:How to intercept touches events on a MKMapView or UIWebView objects? .

如果这没有帮助,请确保您没有在其他 View 之上的 View 、不正确的委托(delegate)、安排和连接 xib,这些都是常见的事情。

关于ios4 - map View 委托(delegate)方法 'mapView:regionDidChange:' 问题不调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9849271/

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