我想在点按“myLocation”按钮时执行一些操作。 到目前为止,我已经在UIButton
本身:点击“myLocation”按钮时触发(Google Maps SDK for iOS)
UIButton *btnMyLoc = (UIButton*)[self.googleMapView subviews].lastObject;
但是这还不够。 任何想法?
我想在点按“myLocation”按钮时执行一些操作。 到目前为止,我已经在UIButton
本身:点击“myLocation”按钮时触发(Google Maps SDK for iOS)
UIButton *btnMyLoc = (UIButton*)[self.googleMapView subviews].lastObject;
但是这还不够。 任何想法?
目前在Google Maps IOS sdk中没有直接的方法可以知道用户何时点击MyLocation按钮。可能的解决方法是使用以下方法
- (void) mapView: (GMSMapView *) mapView idleAtCameraPosition: (GMSCameraPosition *) position
这将在任何相机动画或手势结束时调用。当用户点击mylocation按钮时,摄像机将被动画以定位可见的地图区域,从而用户的当前位置(如果被检测到的话)将位于中心。因此,您可以查看idleAtCameraPosition里面的位置是否与用户的当前位置相同,该位置可通过- (CLLocation*) myLocation [read, assign]
知道并执行您所需的功能。
在版本1.9.2有但这正是一个委托方法:
(BOOL) didTapMyLocationButtonForMapView: (GMSMapView *) mapView [optional]
对于做其他任何事情,你还可以得到参考位置按钮。
// 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];
}
}
}
为了确保这项工作,我们需要添加''作为我们的类的委托。 –