我正在尝试使用
Swift中的Map Kit.我尝试在地图上显示区域,一个引脚(MKPinAnnotationView)和当前位置.一切都很好.我尝试添加disclosure Button并拦截它. disclosure Button已添加,但无法拦截攻丝.
函数pinpressed方法calloutAccessoryControlTapped不起作用….
import UIKit import MapKit import CoreLocation class ViewController: UIViewController,MKMapViewDelegate,CLLocationManagerDelegate { @IBOutlet weak var mainMapView: MKMapView! var locationManager = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBest locationManager.requestAlwaysAuthorization() locationManager.startUpdatingLocation() var objectLatitude = 53.204526 var objectLongitude = 50.111751 var currentLatitude = 53.203715 var currentLongitude = 50.160374 var latDelta = 0.05 var longDelta = 0.05 var currentLocationSpan: MKCoordinateSpan = MKCoordinateSpanMake(latDelta,longDelta) var currentLocation: CLLocationCoordinate2D = CLLocationCoordinate2DMake(locationManager.location.coordinate.latitude,locationManager.location.coordinate.longitude) var currentRegion: MKCoordinateRegion = MKCoordinateRegionMake(currentLocation,currentLocationSpan) self.mainMapView.setRegion(currentRegion,animated: true) var objectLocation: CLLocationCoordinate2D = CLLocationCoordinate2DMake(objectLatitude,objectLongitude) var objectAnnotation = MKPointAnnotation() objectAnnotation.coordinate = objectLocation objectAnnotation.title = "St. George's Church" objectAnnotation.subtitle = "Church of the Great Martyr St. George" self.mainMapView.addAnnotation(objectAnnotation) } func mapView(mapView: MKMapView!,viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! { if annotation is MKUserLocation { //return nil so map view draws "blue dot" for standard user location return nil } let reuseId = "pin" var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView if pinView == nil { pinView = MKPinAnnotationView(annotation: annotation,reuseIdentifier: reuseId) pinView!.canShowCallout = true pinView!.animatesDrop = true pinView!.pinColor = .Purple pinView!.rightCalloutAccessoryView = UIButton.buttonWithType(.Detaildisclosure) as UIButton } else { pinView!.annotation = annotation } return pinView } func pinpressed(mapView: MKMapView!,annotationView: MKAnnotationView,calloutAccessoryControlTapped control: UIControl) { if control == annotationView.rightCalloutAccessoryView { println("disclosure pressed!") } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。