Jak wyświetlać zdjęcia zamiast szpilek na mapie. Do tej pory mogę dodawać tylko szpilki z kranu. Przykładowy kod .m bardzo pomógłby, ponieważ wciąż nie jestem w programowaniu na iOS.Szpilki niestandardowe iOS MapKit
Odpowiedz
#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:
mogę wyjaśnić wszystko o MKAnnotationView
, ale myślę, że można znaleźć w dokumentacji dostarczonej przez firmę Apple, aby być o wiele lepsze wytłumaczenie niż z jakiegokolwiek innego źródła. Sprawdź sekcję przeglądu w linku.
https://developer.apple.com/documentation/mapkit/mkannotationview
to działa. dzięki. Czy mógłbyś podać krótkie wyjaśnienie parametrów, które przeszły i jaki jest identyfikator adnotacji? czy to jest podobne do właściwości znacznika .net? – Bahamut
Zamiast używać "someImage.png", w moim wymaganiu, muszę narysować na UIView i przy użyciu [adnotationView addSubView: myView]. Działa dobrze. Ale nie wywołanie "didSelectAnnotationView" na jego czubku. Nic złego? – Satyam
Może być konieczne wyłączenie interakcji użytkownika z tym widokiem. – Robin
idź do organizatora Xcode, a następnie przejść do dokumentacji i szukanie weatherMap pokazuje przykład na mapie z tym obrazy z adnotacją.
#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;
}
dodaj kilka opisów przed opublikowaniem długiego fragmentu kodu. –
- 1. Wywołanie niestandardowe iOS Mapkit
- 2. Obraz zamiast domyślnej szpilki w strukturze MapKit iPhone'a?
- 3. MapKit iOS 9 detailCalloutAccessoryView use
- 4. iOS 10 MapKit poprzednia warstwa Zoom issue
- 5. (iPhone) jak zaimplementować przeciągane szpilki przy użyciu systemu operacyjnego MapKit 4.0?
- 6. Czcionki iOS niestandardowe
- 7. Zmiana obrazu szpilki na MKMapView w Swift
- 8. ios mapkit zamykanie objaśnień opisów przez dotknięcie mapy
- 9. iOS Siri dodaj niestandardowe słownictwo
- 10. niestandardowe Login Instagram API iOS
- 11. iOS Google Analytics niestandardowe wymiary
- 12. IOS Niestandardowe Ikona Email Attachment
- 13. Niestandardowe przejścia i obroty iOS
- 14. IOS Swift - niestandardowe nakładki kamera
- 15. Niestandardowy zoom MapKit Polyline?
- 16. iPhone MapKit: Dostępność adnotacji
- 17. Szybkie dodawanie pojedynczej szpilki do MKMapView?
- 18. Makro wskazujące szpilki I/O używane
- 19. Niestandardowe odświeżanie dla systemu iOS 8 i iOS 9
- 20. Nakładka radaru pogodowego na MapKit
- 21. Odzyskaj UserLocation współrzędnych z MapKit
- 22. Wyciek pamięci w MapKit iOS8
- 23. Klastrowanie w MapKit ze Swiftem
- 24. Jak tworzyć niestandardowe przyciski w systemie iOS?
- 25. Niestandardowe czcionki w iOS z Phonegap Canvas
- 26. Niestandardowe widoki w iOS w plikach xib
- 27. MapKit nie wyświetla niestandardowego obrazu pinezki adnotacji na iOS9
- 28. Jak programowo otworzyć wywołanie MKAnnotationView? (iPhone, MapKit)
- 29. Jak używać niestandardowych ikon z ramami mapKit?
- 30. Jak śledzić lokalizację użytkownika za pomocą MapKit
Trochę wyszukiwania przechodzi długą drogę :) http://stackoverflow.com/questions/4579397/iphone-mapkit-adding-custom-image-and-pins-to-annotations a także: http://stackoverflow.com/questions/7124028/change-pin-design –