gpt4 book ai didi

iphone - 拖动注解 View 导致多次触发拖动状态委托(delegate)方法

转载 作者:可可西里 更新时间:2023-11-01 05:07:03 27 4
gpt4 key购买 nike

这个有点晦涩。

这个 MKMapViewDelegate 有一个方法可以告诉你何时开始和完成拖动注释 View 。我是这样实现的:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState {

if (oldState == MKAnnotationViewDragStateStarting && newState == MKAnnotationViewDragStateEnding)
{
NSLog(@"Ending drag");
}

if (newState == MKAnnotationViewDragStateStarting)
{
NSLog(@"Beginning drag");
}
}

这类作品。但是,当我停止拖动注释并再次拖动时,上述方法会触发两次,然后触发 3 次等等。所以控制台显示:

Beginning drag
Ending drag

Beginning drag
Beginning drag
Ending drag
Ending drag

Beginning drag
Beginning drag
Beginning drag
Ending drag
Ending drag
Ending drag

Beginning drag
Beginning drag
Beginning drag
Beginning drag
Ending drag
Ending drag
Ending drag
Ending drag

关于造成这种情况的原因有什么想法吗?

最佳答案

我似乎通过添加来解决这个问题:

[annotationView setDragState:MKAnnotationViewDragStateNone];

在 if 语句的“结束拖动”部分。

关于iphone - 拖动注解 View 导致多次触发拖动状态委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557173/

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