【问题标题】:mapView: didTapMarker isn't selecting a markermapView:didTapMarker 没有选择标记
【发布时间】:2016-02-22 17:51:35
【问题描述】:

我有一个带有很多标记的GMSMapView,每个标记都代表我客户的一家商店,每次用户接近其中一个标记(到其中一家商店)时,他都会收到一条带有地址的通知商店。

我希望当用户点击通知(通过通知打开应用程序)时,标记将显示在地图上(已选中)。

注意:标记是每个Store 对象的属性,UILocalNotification 存储Store 对象的标识符,这就是我找到正确存储的方式。

注意 2:我正在使用 Google Maps iOS SDK

我试过这样做:

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{   
    NSString *storeIdentifier=[[notification userInfo] objectForKey:@"storeIdentifier"];
    Store *notificationsStore=[self.monitorLocationVC storeForIdentifier:storeIdentifier];

    [self.myVC mapView:self.myVC.mapView didTapMarker:notificationsStore.marker];
}

由于某种原因,当用户打开应用程序时没有选择标记。

我已经像这样在myVC.m 上覆盖了mapView: didTapMarker:

-(BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker
{
    return NO;
}

【问题讨论】:

    标签: ios objective-c iphone cocoa-touch google-maps-sdk-ios


    【解决方案1】:

    didTapMarkerGMSMapViewDelegate 上,地图会调用它来通知您的代码该标记已被点击。它不会点击标记。

    但是,您可以在地图视图上设置selectedMarker,以使该标记被选中,并显示其信息窗口(如果有的话)。例如:

    self.myVC.mapView.selectedMarker = notificationsStore.marker;
    

    更多示例请参见此处:How to show a Info window in iOS Google maps without tapping on Marker?

    【讨论】:

      【解决方案2】:
       -(BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker
        {
            viewIwant.hidden=NO;
           //or any nib you want 
            return YES;
        }
      

      【讨论】:

        猜你喜欢
        • 2015-06-06
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-08
        • 2012-07-18
        • 1970-01-01
        • 2018-12-13
        相关资源
        最近更新 更多