2013-09-28 57 views

回答

1

目前在Google Maps IOS sdk中没有直接的方法可以知道用户何时点击MyLocation按钮。可能的解决方法是使用以下方法

- (void) mapView: (GMSMapView *) mapView idleAtCameraPosition: (GMSCameraPosition *) position 

这将在任何相机动画或手势结束时调用。当用户点击mylocation按钮时,摄像机将被动画以定位可见的地图区域,从而用户的当前位置(如果被检测到的话)将位于中心。因此,您可以查看idleAtCameraPosition里面的位置是否与用​​户的当前位置相同,该位置可通过- (CLLocation*) myLocation [read, assign]知道并执行您所需的功能。

+0

为了确保这项工作,我们需要添加''作为我们的类的委托。 –

14

在版本1.9.2有但这正是一个委托方法:

(BOOL) didTapMyLocationButtonForMapView: (GMSMapView *) mapView [optional] 

Link to documentation

0

对于做其他任何事情,你还可以得到参考位置按钮。

// custom target My Location Button 
    for (UIView* tmpview in _mapView.subviews[1].subviews[0].subviews) { 
     if ([NSStringFromClass([[tmpview class] class]) isEqualToString:@"GMSx_QTMButton"]) { 
      if ([tmpview isKindOfClass:[UIButton class]]) { 
       myLocationBtn = (UIButton*)tmpview; 
       [myLocationBtn addTarget:self action:@selector(clickedOnLocationButton:) forControlEvents:UIControlEventTouchUpInside]; 
      } 
     } 
    } 
相关问题