Top 10 Messaging Apps for Secure Communication
In a world where digital privacy is under constant threat, secure communication is no longer a luxury—it’s a necessity. From high-profile data breaches to everyday phishing attempts, the risks are […]
We use Maps to find places and directions. The MapKit framework makes it easy for developers to create custom annotation view to implement applications which can make use of the maps in the applications. To create a custom annotation view over map view using Mapkit framework just follow these simple steps.
Step 1- While adding annotation don’t give its title and subtitle. Just add it with Latitude / Longitude and take an integer variable that starts with 100(so that its tag do not clash with others) and increases as per the loop for adding notation.
annotationTag = 100;
for(NSDictionary* postLocateDict in mapData ) {
doublelat = [[postLocateDictobjectForKey:@”location_dx”] doubleValue];
doublelongt = [[postLocateDictobjectForKey:@”location_dy”] doubleValue];
CLLocationCoordinate2D loc;
loc.longitude = longt;
loc.latitude = lat;
MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
annotationPoint.coordinate = loc;
[mapViewHuanBao addAnnotation:annotationPoint];
annotationTag++;
}
Step 2- When you add a notation this will call an MKMapViewDelegate function, just set a tag of that notation.
– (MKAnnotationView *)mapView:(MKMapView *)mapViewviewForAnnotation:(id<MKAnnotation>)annotation {
if([annotation isKindOfClass:[MKUserLocation class]]) {
return nil;
}
static NSString *identifier = @”myAnnotation”;
MKAnnotationView * annotationView = (MKAnnotationView *)[self.mapViewHuanBao dequeueReusableAnnotationViewWithIdentifier:identifier];
if (!annotationView)
{
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
annotationView.image = [UIImage imageNamed:@”pin.png”];
}else {
annotationView.annotation = annotation;
}
annotationView.tag = annotationTag;
returnannotationView;
}
Step 3 – When you tap on notation, a delegate function will call where you can identify the notation by its tag.
(void)mapView:(MKMapView *)mapViewdidSelectAnnotationView:(MKAnnotationView *)view
Here you will identify the notation by its tag using following code-
NSInteger indexOfTheObject = [mapView.annotations indexOfObject:view.annotation];
In indexOfTheObject you will get the notation tag.
Step 4- Now create a custom view as per your requirement, and give tag to every property you used in that view. We used callout view name as calloutView. Set its file owner to your view controller.
Step 5- After finding the tag of selected notation, just use following method to create a custom call out view.
[[NSBundle mainBundle] loadNibNamed:@”calloutView” owner:self options:nil];
CGPointhitPoint = [view convertPoint:CGPointZero toView:mapView];
[annotationView2 setFrame:CGRectMake(hitPoint.x-94,hitPoint.y-73, 220, 73)];
annotationView2.tag = selectedAnnotation;
UILabel *nameLbl = (UILabel *)[annotationView2 viewWithTag:[here give ur tag which u set in custom view]];
And so on….
Step 6-Finally just add it to the view.
[view addSubview:annotationView2];
You can also navigate it to its detail but for that you have to add it on map view, because when you are adding it on view it will remove it from view, so the object is DE allocated.
Comment here if you found any problem.
You may Also like:
Jun 19th, 2025
In a world where digital privacy is under constant threat, secure communication is no longer a luxury—it’s a necessity. From high-profile data breaches to everyday phishing attempts, the risks are […]
Jun 5th, 2025
The demand for custom mobile banking app development is soaring as businesses strive to meet evolving consumer expectations. Today, customers expect seamless, secure, and feature-rich banking experiences that let them […]
Jun 3rd, 2025
This article explores why application modernisation is no longer optional for enterprises. It unpacks how ageing apps are becoming serious roadblocks, the transformative business outcomes of modernising, and the urgent […]