What is the best way to implement a custom MKAnnotationView when someone sets a pin using Swift?
<p>When user clicks on a pin, the MKAnnotationView comes up, but it is very limited. I created a custom button but is there a way to customize the entire view that comes up from the pin? Here is what I have so far.</p>

<pre><code>    func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -&gt; MKAnnotationView? {


    let annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "location")
    annotationView.canShowCallout = true

    let btn = UIButton(type: .Custom) as UIButton
    btn.frame = CGRectMake(50, 60, 60, 50)
    btn.setTitle("button", forState: .Normal)
    btn.titleLabel?.textAlignment = NSTextAlignment.Center
    btn.contentHorizontalAlignment = UIControlContentHorizontalAlignment.Center

    btn.layer.borderColor = UIColor.blueColor().CGColor
    btn.layer.borderWidth = 0.5

    btn.backgroundColor = UIColor.redColor()

    annotationView.rightCalloutAccessoryView = btn

    return annotationView
}
</code></pre>