Tag: mkpinannotationview

MKPinAnnotationView下载的图像(@ 3x)不能用于6+

我在我的应用程序上使用地图,对于引脚删除,我想设置用户的图像,而不是默认引脚。 我正在下载用户图像,并按照我粘贴下面的代码进行设置。 对于不同规模的设备,我使用的图像名称按照设备规模,例如, 1对于非视网膜设备 – pin.png(尺寸30 x 30) 2对于视网膜设备 – pin@2x.png(尺寸60 x 60) 3对于6+设备 – pin@3x.png(尺寸90 x 90) 这里为1和2工作正常和图像负载完美但是对于6 +(3倍规模)它不工作 什么是问题是: 对于6+我下载PIN @ 3X图像,但在地图上它的大小是90×90,应该是30×30。因为它只是适用于从应用程序捆绑使用的图像。 对于pin@2x.png,它工作正常,并显示大小为30 x 30的2x图像。 我也试图通过设置图像的比例而不是解决scheme MKPinAnnotationView:有三种以上的颜色可用吗? 我尽力解释实际问题,如果我错过了任何东西,或者是否需要设置任何东西,任何人都可以指导吗? 码 – (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { MKPinAnnotationView *annotationView = nil; if ([annotation isKindOfClass:[MKUserLocation class]]) { return nil; } if ([annotation isKindOfClass:[KPAnnotation class]]) { //Custom […]

拖动我的MKAnnotationView后拖动地图不会移动MKAnnotationView

MKPinAnnotationView不允许您使用自定义图像作为“插针”并同时启用拖动,因为只要开始拖动,图像就会变回默认的插针。 因此,我使用MKAnnotationView而不是MKPinAnnotationView。 虽然使用MKAnnotationView而不是MKPinAnnotationView会使您的自定义图像显示为“引脚”,但不支持使用默认引脚获取的拖放animation。 无论如何,我的问题是,我将我的自定义MKAnnotationView拖动到地图上的新点后,然后移动地图本身,MKAnnotationView不会随地图一起移动。 -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { static NSString *defaultID = @"myLocation"; if([self.annotation isKindOfClass:[PinAnnotation class]]) { //Try to get an unused annotation, similar to uitableviewcells MKAnnotationView *annotationView = [self.mapView dequeueReusableAnnotationViewWithIdentifier:defaultID]; //If one isn't available, create a new one if(!annotationView) { annotationView = [[MKAnnotationView alloc] initWithAnnotation:self.annotation reuseIdentifier:defaultID]; annotationView.canShowCallout = YES; annotationView.draggable = YES; annotationView.enabled […]

MapView自定义图钉问题

我已经改变了我的MapView引脚图像,但我得到这个问题,一些点不会改变引脚图像,其中一些改变。 问题在哪里? 我已经添加了一个例子。 我的代码: – (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation { MKPinAnnotationView *pinAnnotation = nil; MKAnnotationView *pinView = nil; if(annotation != locationMap.userLocation) { static NSString *defaultPinID = @"myPin"; pinAnnotation = (MKPinAnnotationView *)[locationMap dequeueReusableAnnotationViewWithIdentifier:defaultPinID]; if ( pinAnnotation == nil ) pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease]; pinAnnotation.canShowCallout = YES; pinAnnotation.animatesDrop = YES; pinAnnotation.enabled = YES; […]

MKPinAnnotationView颜色不起作用

我试图从数组中显示一些引脚,显示它们,但是它们是红色的,而不是绿色的,因为我要求它们是。 这是为什么 ? //run on array to get all locations for(int k=0;k<[array count];k=k+2) { float targetlat=[[array objectAtIndex:k] floatValue]; float targetlongi=[[array objectAtIndex:k+1] floatValue]; CLLocationCoordinate2D location = CLLocationCoordinate2DMake(targetlat,targetlongi); NSString *partyTitle = @"title"; MKPinAnnotationView *partyPin = [self returnPointView:location andTitle:partyTitle andColor:MKPinAnnotationColorGreen]; [self.mapView addAnnotation:partyPin.annotation]; } //function callback is working but its red, and it takes so much time to load […]

EXC_BAD_ACCESS与MKPinAnnotationView

我在iOS的mapView上显示MKPinAnnotationView时出现问题。 我得到这个错误,但我不明白错误来自哪里:“EXC_BAD_ACCESS”。 我的代码看起来不错: -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { MKPinAnnotationView *pv = [[MKPinAnnotationView alloc] init]; [pv setPinColor:MKPinAnnotationColorGreen]; [pv setCanShowCallout:YES]; [pv setRightCalloutAccessoryView:[UIButton buttonWithType:UIButtonTypeDetailDisclosure]]; return pv; } 当我设置断点到应用程序,这里是我的控制台显示使用gdb: continue Current language: auto; currently objective-c Program received signal: “EXC_BAD_ACCESS”. (gdb) bt #0 0x023d1dfe in -[MKPinAnnotationView _setPinType:] () #1 0x0000324c in -[iSouvenirView mapView:viewForAnnotation:] (self=0x761abe0, _cmd=0x24221fd, mapView=0x7613410, annotation=0x761d360) at /Users/m2sar/iSouvenir/iSouvenirView.m:125 […]

MKPinAnnotationView自定义图像被replace为具有animation删除的引脚

我在MapView上显示用户头像图片。 如果不使用animation呈现,那么头像看起来可以正常工作,但是我想为它们设置animation。 如果我将pinView.animatesDrop设置为true,那么我将失去头像并将其replace为引脚。 如何在不使用图钉的情况下为我的头像下拉animation? 这里是我使用的viewForAnnotation方法: – (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { if ([annotation isKindOfClass:[MKUserLocation class]]) return nil; MKPinAnnotationView* pinView = (MKPinAnnotationView*)[self.mapView dequeueReusableAnnotationViewWithIdentifier:@"MyAnnotation"]; if (!pinView) { pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"CustomPinAnnotation"]; } else pinView.annotation = annotation; //If I set this to true, my image is replaced by the pin //pinView.animatesDrop = true; //I'm using […]

想要:如何可靠地,一致地select一个MKMapView注释

在调用MKMapView的setCenterCoordinate:animated:方法(没有animation)之后,我想调用selectAnnotation:animated 🙁带有animation),以便注释从新集中的图钉popup。 现在,我只需要注意mapViewDidFinishLoadingMap:然后select注释。 但是,这是有问题的。 例如,当不需要加载额外的地图数据时,此方法不会被调用。 在这些情况下,我的注释不被选中。 🙁 很好。 我可以在设置中心坐标后立即调用它。 啊,但在这种情况下,有可能有地图数据加载(但尚未完成加载)。 我可能会过早地冒这个风险,animation最多只会变成斑点。 因此,如果我理解正确的话,这不是一个知道我的坐标是否可见的问题,因为它可能会散布几乎一定距离,并且必须加载新的地图数据。 相反, 这是一个知道是否需要加载新的地图数据,然后采取相应的行动。 任何关于如何完成这个任务的想法,或者如何在地图视图重新居中之后(可靠地)select一个注释到注释所在的坐标上? 线索赞赏 – 谢谢!