MKMapView -> display a button for my location

不打扰是莪最后的温柔 提交于 2019-12-03 15:34:05
Mihir Mehta

in your didUpdateToLocation write something like

AddressAnnotation   *myAnnotation = [[AddressAnnotation alloc] initWithCoordinate:currentLocation];
                myAnnotation.title = @"You are here";
                [self.mapView addAnnotation:myAnnotation];

And Then

Something Like

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
           // try to dequeue an existing pin view first
        static NSString* annotationIdentifier = @"annotationIdentifier";

        NSString *titlestr = annotation.title;

        MKPinAnnotationView* pinView = (MKPinAnnotationView *)
        [mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier];
    MKPinAnnotationView* customPinView = [[[MKPinAnnotationView alloc]
                                           initWithAnnotation:annotation reuseIdentifier:nil] autorelease];
        if (!pinView)
        {
            // if an existing pin view was not available, create one
           // MKPinAnnotationView* customPinView = [[[MKPinAnnotationView alloc]
                                                   //initWithAnnotation:annotation reuseIdentifier:annotationIdentifier] autorelease];
            if([titlestr isEqualToString:@"You are here"])
            {
                customPinView.pinColor = MKPinAnnotationColorGreen;
                NSLog(@"customPinView.pinColor = MKPinAnnotationColorGreen;");
            }
            else{
                customPinView.pinColor = MKPinAnnotationColorPurple;
                customPinView.selected = TRUE;
                NSLog(@"customPinView.pinColor = MKPinAnnotationColorPurple;");
                UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
                [rightButton addTarget:self
                                action:@selector(ShowStoreDetail:)
                      forControlEvents:UIControlEventTouchUpInside];
                customPinView.rightCalloutAccessoryView = rightButton;
            }
            customPinView.animatesDrop = YES;
            customPinView.canShowCallout = YES;

            return customPinView;
        }
        else
        {
            pinView.annotation = annotation;



            if([titlestr isEqualToString:@"You are here"])
            {
                customPinView.pinColor = MKPinAnnotationColorPurple;
                NSLog(@"customPinView.pinColor = MKPinAnnotationColorGreen;");
            }
            else{
                customPinView.pinColor = MKPinAnnotationColorPurple;
                customPinView.selected = TRUE;
                NSLog(@"customPinView.pinColor = MKPinAnnotationColorPurple;");
                UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
                [rightButton addTarget:self
                                action:@selector(ShowStoreDetail:)
                      forControlEvents:UIControlEventTouchUpInside];
                customPinView.rightCalloutAccessoryView = rightButton;
            }


        }
        return pinView;

    return nil;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!