【问题标题】:On mkuserlocation, how do I show my own custom message in viewForAnnotation在 mkuserlocation 上,如何在 viewForAnnotation 中显示我自己的自定义消息
【发布时间】:2012-01-11 06:03:30
【问题描述】:

我想在 viewForAnnotation 中显示自定义消息而不是“我的位置”。我该怎么做?

谢谢 德肖恩

【问题讨论】:

    标签: ios4 mkmapview mkannotation


    【解决方案1】:

    在您的MKMapView 的委托中,实现方法mapView:viewForAnnotation 并检查注解是否为MKUserLocation 类型。如果是,请更改注释的标题和副标题属性。标注将自动提取新值。或者您可以创建一个全新的视图并在此处返回。

    - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
        if ([annotation isKindOfClass:[MKUserLocation class]]) {
            annotation.title = @"I am here";
            return nil;
        }
        return nil;
    }
    

    免责声明:我没有测试过这段代码。

    【讨论】:

    • 你好,你不能直接这样设置标题...有没有其他方法来设置这个注释的标题?
    【解决方案2】:

    可以通过更新MKUserLocationTitle属性来完成。

    由于MKAnnotation 协议不需要将Title 设为属性,因此将注释作为参数传递给MKUserLocation 并设置属性

    - (MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:    (id<MKAnnotation>)annotation {
        if ([annotation isKindOfClass:[MKUserLocation class]]) {
            [(MKUserLocation*)annotation setTitle: @"I am here"];
            return nil;
        }
        return nil;
    }
    

    【讨论】:

      【解决方案3】:

      直接引用它也可以,像这样......

      mapView.userLocation.title = @"I am here";
      

      这可以在任何您有地图视图参考的地方完成。

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-06
        • 2011-09-21
        • 1970-01-01
        相关资源
        最近更新 更多