Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 分段控制导致mapkit中的pincolor变化_Iphone_Objective C_Uisegmentedcontrol - Fatal编程技术网

Iphone 分段控制导致mapkit中的pincolor变化

Iphone 分段控制导致mapkit中的pincolor变化,iphone,objective-c,uisegmentedcontrol,Iphone,Objective C,Uisegmentedcontrol,问题是: 我有一个mapkit视图,有两种不同的颜色。现在我添加了一个分段控件来显示不同的地图类型,即卫星地图、标准地图和混合地图。当我的应用程序加载时,有两种不同的颜色是正确的。但是,当我选择这些片段时,我的所有精确点都将变为红色 有没有办法重新加载我的所有数据并精确定位,这样每个片段都会给我相同的初始视图 - (IBAction) segmentAction:(id)sender { UISegmentedControl* segCtl = sender ; if

问题是:

我有一个mapkit视图,有两种不同的颜色。现在我添加了一个分段控件来显示不同的地图类型,即卫星地图、标准地图和混合地图。当我的应用程序加载时,有两种不同的颜色是正确的。但是,当我选择这些片段时,我的所有精确点都将变为红色

有没有办法重新加载我的所有数据并精确定位,这样每个片段都会给我相同的初始视图

- (IBAction) segmentAction:(id)sender 
    {
    UISegmentedControl* segCtl = sender ;

    if( [segCtl selectedSegmentIndex] == 0 )
    { 
        NSLog(@"first view");
        _mapView.mapType=MKMapTypeStandard;

    }
    if( [segCtl selectedSegmentIndex] == 1 ) 
    { 
        NSLog(@"2nd view");
        _mapView.mapType=MKMapTypeSatellite;

    }
    if( [segCtl selectedSegmentIndex] == 2 ) 
    {

        NSLog(@"3rd view");
        _mapView.mapType=MKMapTypeHybrid;

    }


}

确保地图视图控制器实现viewForAnnotation:方法-如果缺少此方法,则在刷新视图时可能会重置pin颜色。例如:

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation
{
MKPinAnnotationView *newAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"redpin"] autorelease];
newAnnotation.pinColor = MKPinAnnotationColorRed;
newAnnotation.animatesDrop = YES;
newAnnotation.canShowCallout = YES;
return newAnnotation;
}

嗨,尼克。。谢谢你的帮助。。我已经有了。。但每当我选择不同的片段时,我的pincolor仍然在变化。有没有办法为每个片段重新加载地图?当您实例化MKPinAnnotationView时,是否使用autorelease?我编辑了这个。也许这会有帮助?另外,如果您使用自己的自定义图像,请确保您使用的是MKAnnotationView,而不是MKPinAnnotationViewyea也有此功能..=juz dun明白为什么颜色一直在变化。。。因此,我将不得不按下我的选项卡栏中的另一个选项卡,然后在颜色再次正确之前b到地图选项卡。。。分段控制将所有精确点更改为红色!事实上,这是MKAnnotationView。。。英雄联盟不知道为什么当它第一次加载时,它允许我使用MKPinAnnotationView,即使我的是自定义图像。。。再次感谢你的帮助!