使用最新的GoogleMaps:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'
pod 'GoogleMaps'
在我的ios代码中,我声明了didTapMarker:
- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker{
...
}
我首先启动应用程序,获取地图并在地图上放置标记......没问题。一切都按预期工作。现在我想点击标记并弹出一个带有标记信息的气球。我可以整天点击该标记,并且永远不会调用didTapMarker方法。但是,如果我在任何方向上稍微拖动/移动地图,我可以点击标记并完美调用didTapMarker方法。从那时起,didTapMarker就像应用程序的生命周期一样工作。
我可能在viewDidLoad或其他东西上出了点问题...... ???
- (void)viewDidLoad
{
[self setDelegate:self ];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeIndeterminate;
hud.labelText = @"Getting data...";
[super viewDidLoad];
float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (systemVersion >= 7.0)
{
self.navigationController.navigationBar.translucent = NO;
[self setEdgesForExtendedLayout:UIRectEdgeNone];
}
devicesToDraw = [[NSMutableArray alloc] init];
[gmsMapView setDelegate:self];
[self.mapTypeView setHidden:true];
self.mapTypeView.center = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height/2);
[self.settingsView setHidden:true];
self.mapTypeView.center = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height/2);
devicesManager= [[DevicesManager alloc] initWithDelegate:[MainViewController getInstance] and:self];
notificationManager = [[NotificationManager alloc] init];
[UIApplication sharedApplication].networkActivityIndicatorVisible = FALSE;
[indicator stopAnimating];
UIBarButtonItem *mapType = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"map_24px.png"] style:UIBarButtonItemStylePlain target:self action:@selector(mapType)];
[mapType setTintColor:[UIColor whiteColor]];
[self.navigationItem setLeftBarButtonItem:self.navigationItem.leftBarButtonItem];
[self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:self.navigationItem.rightBarButtonItem, mapType, nil]];
[hud hide:true];
}
答案 0 :(得分:0)
我看到你将地图的委托设置为self,但是我没有看到你声明/实例化地图的位置。
我对给出的代码的最佳猜测是你没有正确设置该委托,而是在你移动地图后找到了一个委托。因此,请确保在设置该委托之前实例化您的地图。