Come si visualizzano le immagini anziché i pin sulla mappa. Finora posso aggiungere solo i pin alla spina. Un codice di esempio del .m sarebbe estremamente utile dal momento che sono ancora nuovo alla programmazione iOS.Perni iOS MapKit personalizzati
risposta
#pragma mark -
#pragma mark MKMapView delegate
- (MKAnnotationView *)mapView:(MKMapView *)mapview viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;
static NSString* AnnotationIdentifier = @"AnnotationIdentifier";
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];
if(annotationView)
return annotationView;
else
{
MKAnnotationView *annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:AnnotationIdentifier] autorelease];
annotationView.canShowCallout = YES;
annotationView.image = [UIImage imageNamed:@"someImage.png"];
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self action:@selector(writeSomething:) forControlEvents:UIControlEventTouchUpInside];
[rightButton setTitle:annotation.title forState:UIControlStateNormal];
annotationView.rightCalloutAccessoryView = rightButton;
annotationView.canShowCallout = YES;
annotationView.draggable = YES;
return annotationView;
}
return nil;
}
EDIT:
potevo spiegare a tutti voi per il MKAnnotationView
, ma penso che si trova la documentazione fornita da Apple per essere una spiegazione molto meglio che da qualsiasi altra fonte. Controlla la sezione panoramica nel link.
https://developer.apple.com/documentation/mapkit/mkannotationview
funziona. Grazie. potresti inserire una breve spiegazione sui parametri passati e su quale sia l'identificatore di annotazione? è simile alla proprietà del tag .net? – Bahamut
Invece di usare "someImage.png", nel mio requisito, devo disegnare su UIView e usando [annotationView addSubView: myView]. Funziona bene. Ma non chiamare "didSelectAnnotationView" alla sua uscita. Qualcosa di sbagliato? – Satyam
Potrebbe essere necessario disabilitare l'interazione dell'utente di quella vista. – Robin
Vai organizzatore di Xcode e poi andare alla documentazione e di ricerca weathermap si vede ad esempio per la mappa con l'inclusione di immagini a annotazione.
#pragma mark -
#pragma mark MKMapView delegate
-(void)addAllPinsOnMapView
{
MKCoordinateRegion region = mapViewOffer.region;
region.center = CLLocationCoordinate2DMake(12.9752297537231, 80.2313079833984);
region.span.longitudeDelta= 0.1f;
region.span.latitudeDelta= 0.1f;
[mapViewOffer setRegion:region animated:YES];
mapViewOffer.delegate=self;
arrMapPin=[[NSMutableArray alloc] init];
NSArray *name=[[NSArray alloc]initWithObjects:
@"Title1",
@"Title2",
@"Title3", nil];
NSMutableArray *arrCoordinateStr = [[NSMutableArray alloc] initWithCapacity:name.count];
[arrCoordinateStr addObject:@"12.970760345459,80.2190093994141"];
[arrCoordinateStr addObject:@"12.9752297537231,80.2313079833984"];
[arrCoordinateStr addObject:@"12.9788103103638,80.2412414550781"];
for(int i = 0; i < name.count; i++)
{
NSArray *components = [[arrCoordinateStr objectAtIndex:i] componentsSeparatedByString:@","];
double latitude = [components[0] doubleValue];
double longitude = [components[1] doubleValue];
MKPointAnnotation *mapPin = [[MKPointAnnotation alloc] init];
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(latitude, longitude);
mapPin.title = [name objectAtIndex:i];
mapPin.coordinate = coordinate;
[mapViewOffer addAnnotation:mapPin];
}
}
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:
(MKAnnotationView *)view
{
NSLog(@"%@",view.annotation.title);
NSLog(@"%f",view.annotation.coordinate.latitude);
NSLog(@"%f",view.annotation.coordinate.longitude);
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(calloutTapped:)];
[view addGestureRecognizer:tapGesture];
}
-(void)calloutTapped:(UITapGestureRecognizer *) sender
{
NSLog(@"Callout was tapped");
MKAnnotationView *view = (MKAnnotationView*)sender.view;
id <MKAnnotation> annotation = [view annotation];
if ([annotation isKindOfClass:[MKPointAnnotation class]])
{
//[self performSegueWithIdentifier:@"annotationDetailSegue" sender:annotation];
OfferDetailsViewController *objOfferDetailsViewController = [[OfferDetailsViewController alloc]init];
[self.navigationController pushViewController:objOfferDetailsViewController animated:YES];
}
}
- (MKAnnotationView *)mapView:(MKMapView *)theMapView
viewForAnnotation:(id <MKAnnotation>)annotation
{
MKAnnotationView *pinView = nil;
static NSString *defaultPinID = @"annotationViewID";
pinView = (MKAnnotationView *)[mapViewOffer dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if (pinView == nil){
pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID];
}
pinView.canShowCallout = YES;
pinView.image = [UIImage imageNamed:@"placeholder"];
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[infoButton addTarget:self action:@selector(infoButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
pinView.rightCalloutAccessoryView = infoButton;
return pinView;
}
aggiungi qualche descrizione prima di pubblicare un lungo snippet di codice. –
- 1. Offline MapKit soluzione per iOS
- 2. Callout personalizzato di iOS Mapkit
- 3. MapKit iOS 9 detailCalloutAccessoryUtilizzo di visualizzazione
- 4. ios MapKit MKOverlayView animazione accadendo istantaneamente
- 5. IOS: zoom in mapkit per due punti di annotazione
- 6. iOS 5 MapKit si blocca con sovrapposizioni quando zoom/pan
- 7. iOS Swift MapKit che rende un'annotazione trascinabile dall'utente?
- 8. Impossibile trovare caratteri personalizzati - iOS
- 9. Caratteri personalizzati per iOS 5
- 10. Toubleshooting prestazioni del mapkit
- 11. MapTypeStyle in MapKit
- 12. Zoom personalizzato polilinea MapKit?
- 13. MapKit zoom predefinito
- 14. Come creare pulsanti personalizzati in iOS?
- 15. Animate MapKit modifica coordinate annotazione in Swift?
- 16. Impossibile tracciato percorso sulla vista sovrapposizione mapkit
- 17. Sovrapposizione radar meteo su MapKit
- 18. Raggruppamento in MapKit con Swift
- 19. Sviluppo iPhone - CLLocationManager vs. MapKit
- 20. iPhone MapKit: accessibilità delle annotazioni
- 21. Mapkit su supporto IOS elimina la desquamazione degli overlay? (come fa le annotazioni)
- 22. modo migliore per creare la mappa dell'edificio personalizzati per iOS
- 23. Bitmap gratuiti per pulsanti e cursori personalizzati iOS?
- 24. Come scrivere metadati personalizzati in immagini PNG su iOS
- 25. Icone per tipi di file personalizzati (iOS o OS X)
- 26. Storyboard iOS Presentazione dei tipi "relazioni, incorporamento, push, modali, personalizzati"
- 27. I pulsanti personalizzati iOS e scroll view come venmo
- 28. Utilizzo di caratteri personalizzati per l'intera app iOS swift
- 29. Come seguire la posizione dell'utente con MapKit
- 30. Errore durante l'uso di Mapkit in Xcode?
Un po 'di ricerca va un lungo cammino :) http://stackoverflow.com/questions/4579397/iphone-mapkit-adding-custom-image-and-pins-to-annotations e anche: http://stackoverflow.com/questions/7124028/change-pin-design –