2

我正在开发一个 iPad 应用程序,我有一个全屏 MKMapView,上面有一个透明的 UIScrollView(大约是屏幕的 1/5)。当您水平滚动 UIScrollView 时,我正在向地图添加注释(地图图钉),但我注意到在您释放/停止拖动 UIScrollView 之前,图钉实际上并没有落到地图上。

我还通过添加下面的 NSLog 确认了时间与预期一致。当我滚动时,控制台会显示“正在添加图钉”消息,但在您停止拖动之前不会添加图钉。

if(![myMap.annotations containsObject:item]) {
    [myMap addAnnotation:item];
    NSLog(@"Adding pin."); // Gets called when I would expect, but no pin drops
}

我确定地图正在处理触摸,但我不确定如何告诉地图忽略它上面的 UIScrollView 中的触摸......或者相反,告诉 UIScrollView 不要将触摸传递给下面的地图。

任何帮助将不胜感激。

4

1 回答 1

0

我不知道如何告诉地图忽略它上面的 UIScrollView 中的触摸......或者相反,告诉 UIScrollView 不要将触摸传递给下面的地图。

你试过 UIViews 上与触控相关的三个属性吗?如果您将 UIScrollView 的 .exclusiveTouch 属性设置为 YES,它将阻止触摸事件传递到该窗口中的任何其他视图。

或者您可以将地图视图的 .userInteractionEnabled 属性修改为 NO。无论哪种方式,您都会阻止将触摸事件从滚动视图传递到地图视图。

如果这两个属性不起作用,那么您的问题可能与滚动视图内的触摸无关。

于 2011-02-01T19:43:47.453 回答