GMSMapVIew didTapMarker not Firing直到我拖动/移动地图

时间:2015-11-25 14:50:18

标签: ios google-maps gmsmapview

使用最新的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];
}

1 个答案:

答案 0 :(得分:0)

我看到你将地图的委托设置为self,但是我没有看到你声明/实例化地图的位置。

我对给出的代码的最佳猜测是你没有正确设置该委托,而是在你移动地图后找到了一个委托。因此,请确保在设置该委托之前实例化您的地图。