代码之家  ›  专栏  ›  技术社区  ›  Lee Armstrong

mkmappview regiondidchangeatured不总是被调用!

  •  12
  • Lee Armstrong  · 技术社区  · 15 年前

    它大部分时间都会被称为,但随后它会停止对挤压的反应。它将在屏幕上旋转并双击。一点也不!

    救命啊!

    5 回复  |  直到 15 年前
        1
  •  7
  •   Paras Joshi    12 年前

    我正在研究一些有相同问题的代码,结果发现问题是一个子视图 UIGestureRecognizer MKMapView ,有时,它们会导致某些委托方法不被激发。

    MKMapView视图 .

    希望这有帮助。

        2
  •  3
  •   Lee Armstrong    15 年前

    我正在用代码移动地图,然后我需要打电话给

    [mapView setNeedsDisplay];
    

        3
  •  1
  •   frankli    13 年前

    我认为这个问题可能与多线程有关。

    今天早上我也有同样的问题。我使用手势识别器捕获长按事件,然后向mapview添加一个pin。如果运行良好,但在几轮之后,区域确实更改了方法停止调用。

        4
  •  0
  •   borisdiakur Faheel Khan    13 年前

    我通过禁用touchesBeganCallback中的手势识别器解决了这个问题

    self.tapInterceptor.touchesBeganCallback = ^(NSSet *touches, UIEvent *event) {
        self.tapInterceptor.enabled = NO;
        // do something
    };
    

    并在regionDidChangeAnimated委托方法中重新启用它

    - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
        self.tapInterceptor.enabled = YES;
        // do something
    }
    
        5
  •  0
  •   Anton Tropashko    7 年前

    recognizer.cancelsTouchesInView = NO;
    

    如果您的业务逻辑允许对mappview进行双重处理(通过mkmappview和手势识别器 这是最近一次干扰该地区的变化动画:)