我想在點按「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];
}
}
}
爲了確保這項工作,我們需要添加''作爲我們的類的委託。 –