DXCustomCallout-ObjC
Usage
To run the example project, clone the repo, and run pod install
from the Example directory first.
DXAnnotationView
in your project
Integrating 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;
Configuring additional settings for your custom callout
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#>;
Making sure the size of your custom view doesn't grow bigger
- 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
Screenshot
Requirements
iOS 7 or above & ARC
Installation
DXCustomCallout-ObjC is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "DXCustomCallout-ObjC"
Author
s3lvin, [email protected]
Pull requests are welcome!
License
DXCustomCallout-ObjC is available under the MIT license. See the LICENSE file for more info.