【问题标题】:Stealing two-finger pan from mkmapview从 mkmapview 窃取两指平移
【发布时间】:2011-03-18 23:04:54
【问题描述】:

我在 MKMapView 上方放置了一个 UIview,目的是在我跟踪用户位置时从地图视图中窃取两指平移。如果您注意到 Google 地图应用程序也在手机上执行此操作。

但是我不知道该怎么做。我希望能够根据是否正在跟踪位置来随意启用和禁用它。所有其他手势和触摸都应传递到地图视图

提前致谢。

【问题讨论】:

    标签: iphone mkmapview gestures


    【解决方案1】:

    假设您要使用 OS 4 及更高版本,简单的方法不是使用 UIView,而是直接在地图视图上添加手势识别器,例如:

    UIPanGestureRecognizer* gest = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];
    [mapView addGestureRecognizer:gest];
    

    ...然后所有滑动手势(在这种情况下)将传递给 [self handlePanGesture:(UIPanGestureRecognizer*) x];

    如果您查看有关手势识别器的文档,有多种选择,您可以将它们添加到非常精细的粒度级别(点击与滑动,使用多少手指等)

    【讨论】:

    • 有单指和两指平移。如何将单指手势传回地图视图?
    • 我已经尝试过了,但是选择器没有被调用UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerPanGesture:)]; pan.minimumNumberOfTouches = 2; pan.maximumNumberOfTouches = 2; [map addGestureRecognizer:pan]; [pan release];
    • 释放它可能不安全?
    • 在我的脑海中,我不记得 addGestureRecognizer 是否保留。另外,我会先在一个新的空白项目(不是 Map)中使用普通的 UIView 尝试这个,以防万一 Map 有什么不寻常的地方,或者你的视图控制器中有什么不寻常的地方会混淆问题
    • 好的,我稍后再看看。这不是您可以想象的优先事项,但我想改善用户体验和平移,同时跟踪您的位置在我看来不好,而且很烦人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    相关资源
    最近更新 更多