To run the example project, clone the repo, and run pod install
from the Example directory first.
You can return a DXAnnotationView
from
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
method.
First create your pinview and calloutview
UIView *pinView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pin"]];
UIView *calloutView = [[[NSBundle mainBundle] loadNibNamed:@"myView" owner:self options:nil] firstObject];
Then you create your custom annotation view as shown below.
DXAnnotationView *annotationView = (DXAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:NSStringFromClass([DXAnnotationView class])];
if (!annotationView) {
annotationView = [[DXAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:NSStringFromClass([DXAnnotationView class])
pinView:pinView
calloutView:calloutView
settings:[DXAnnotationSettings defaultSettings]];
}
return annotationView;
DXAnnotationView
has customizable look and feel. You can configure the settings by passing your own DXAnnotationSettings
in to DXAnnotationView
while initializing it.
DXAnnotationSettings *newSettings = [[DXAnnotationSettings alloc] init];
newSettings.calloutOffset = <#your calloutoffset#>;
newSettings.shouldRoundifyCallout = <#YES to make the calloutview with corner radius#>;
newSettings.calloutCornerRadius = <#your callout view's corner radius. applied only if shouldRoundifyCallout is YES#>;
newSettings.shouldAddCalloutBorder = <#YES to add border for your custom callout#>;
newSettings.calloutBorderColor = <#your callout view's border color#>;
newSettings.calloutBorderWidth = <#your callout view's border width#>;
newSettings.animationType = <#DXCalloutAnimation type#>;
newSettings.animationDuration = <#DXCalloutAnimation duration#>;
- Disable Autolayout for your custom callout view for a moment
- Remove the FexibleWidth and Flexible height AutoResizingMasks from your custom callout view
- Re enable Autolayout if needed
iOS 7 or above & ARC
DXCustomCallout-ObjC is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "DXCustomCallout-ObjC"
s3lvin, mariaselvin@gmail.com
Pull requests are welcome!
DXCustomCallout-ObjC is available under the MIT license. See the LICENSE file for more info.