1
주석 이미지를 바꿀 수있는 두 개의 코드 블록 사이의 링크와 관련하여 문제가 있습니다. 나는 신속한 새로운, 그래서 나는 mapView에서 그것을 파악하려고 힘든 시간을 보내고있다. 실행시 문자열을 출력하는 함수에 코드를 제공했지만 문자열이 NSLog에 표시되지 않습니다. 이것은 함수가 전혀 실행되지 않는다는 것을 의미합니까? 내가 잘못한 부분에 대한 제안을 해주시면 감사하겠습니다. 당신은 내가 내 대리인 문제 호출되지있어 결코 있도록 대리자를 설정하는 잊어 을 가질 수있다처럼 당신을 감사하는 것은클래스의 레이아웃
class ViewController2: UIViewController {
@IBOutlet var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
//Location for first Pin
let locationOne = CLLocationCoordinate2DMake(-47.016945, 167.852095)
//Location for map centering
let locationNZ = CLLocationCoordinate2DMake(-43.937462, 170.507813)
let span = MKCoordinateSpanMake(9, 9)
let region = MKCoordinateRegion(center: locationNZ, span: span)
mapView.setRegion(region, animated: true)
//Create annotation one
let annotation = MKPointAnnotation()
annotation.coordinate = locationOne
annotation.subtitle = "Park"
annotation.title = "Rakiura National Park"
//Add annotation to the map
mapView.addAnnotation(annotation)}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()}
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
print("func")
guard !annotation.isKind(of: MKUserLocation.self) else {
return nil}
let annotationIdentifier = "AnnotationIdentifier"
var annotationView: MKAnnotationView?
if let dequeuedAnnotationView = mapView.dequeueReusableAnnotationView(withIdentifier: annotationIdentifier) {
annotationView = dequeuedAnnotationView
annotationView?.annotation = annotation}
else {
let av = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier)
av.rightCalloutAccessoryView = UIButton(type: .detailDisclosure)
annotationView = av}
if let annotationView = annotationView {
annotationView.canShowCallout = true
annotationView.image = UIImage(named: "mapIcon.png")}
return annotationView}}
답장을 보내 주셔서 감사합니다. 시도해 봤지만 '(MKMapView, MKAnnotation) -> MKAnnotationView 유형의 값을 말하는 오류가 발생했습니다.' 회원 대표가 없습니다. 이것에 대한 아이디어가 있습니까? – imjonu
그건 말이되지 않습니다. 이 함수는 대리자를 함수에 할당하려고하고 있음을 나타냅니다. 위임자를 MapView 개체의 대리자 속성에 할당하고 직접 가리 킵니다. 그런 다음 MapViewDelegate 프로토콜을 구현합니다. https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html을 참조하십시오. –