HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iOS:用户位置变为pin大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个奇怪的行为mapView:当我打开它,一切正常.将找到用户(蓝色圆圈)并且3个针脚就位.但是(我不知道为什么)一段时间后,蓝点变成了一个引脚 – 但只有当我的连接速度很慢时才会这样.

这是我得到的:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)Annotation
{
    MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"pinView"];

    if (!pinView && ![Annotation isKindOfClass:[MKUserLOCATIOn class]])
    {
        pinView = [[MKPinAnnotationView alloc] initWithAnnotation:Annotation reusEIDentifier:@"pinView"];
        pinView.pinColor = MKPinAnnotationColorRed;
        pinView.animatesDrop = YES;
        pinView.canShowCallout = YES;

        UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinView.rightCalloutAccessoryView = rightButton;

        if (Annotation == self.LOCATIOnZH1)
        {
            [pinView setTag:1];
        }
        else if (Annotation == self.LOCATIOnZH2)
        {
            [pinView setTag:2];
        }
        else if (Annotation == self.LOCATIOnZH3)
        {
            [pinView setTag:3];
        }
        else if (Annotation == self.LOCATIOnLU1)
        {
            [pinView setTag:4];
        }
    }
    else
    {
        pinView.Annotation = Annotation;
    }

    return pinView;
}

解决方法

请务必避免为内置用户位置标记提供注释视图.

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)Annotation
{
    //check Annotation is not user LOCATIOn
    if([Annotation isEqual:[mapView userLOCATIOn]])
    {
        //bail
        return nil;
    }

    static NSString *AnnotationViewReusEIDentifer = @"map_view_Annotation";

    //dequeue Annotation view
    MKPinAnnotationView *AnnotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationViewReusEIDentifer];

    if(!AnnotationView)
    {
        AnnotationView = [[MKPinAnnotationView alloc] initWithAnnotation:Annotation reusEIDentifier:AnnotationViewReusEIDentifer];
    }

    //set Annotation view properties
    [AnnotationView setAnnotation:Annotation];

    return AnnotationView;
}

通过先检查用户位置注释,您可以提前返回nil而不是分配新的MKPinAnnotationView并返回它.

– (MKAnnotationView *)mapView的文档:(MKMapView *)mapView viewForAnnotation:(id< MKAnnotation>)注释状态:

大佬总结

以上是大佬教程为你收集整理的iOS:用户位置变为pin全部内容,希望文章能够帮你解决iOS:用户位置变为pin所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。