CC BY 3.0 License

Powered by

1 image



This is an annotation view that sports a callout bubble with multiple, independently selectable rows of data. The objective is to allow each cell/row to utilize an accessory disclosure button, without resorting to a more involved UITableViewController scenario.

(See the included demo for a functional representation of this project.)

Presuming you've already set up your project to use the MapKit Framework, you first need to add the appropriate classes in the "MultiRowCalloutAnnotationView" directory. Next, ensure your annotation class (if you have a preexisting one) answers to the "title" selector, and that it also returns an array of MultiRowCalloutCells upon request. The callout cell class takes a title, subtitle, and an image. You can also supply an NSDictionary for custom data that is passed along on accessory button touches. The MultiRowCalloutAnnotationView gathers the necessary information and conveniently uses blocks to handle the button touch events.