2015-10-21 20 views
7

伝統的な赤いピンの代わりに個人的なイメージを置いています。ピンを表示するためにマップを開くと、画像はマップ全体をカバーします。ピンイメージの最大サイズはありますか、サイズ標準の古典的ピンに合うようにコードに何かを組み込むにはどうすればよいですか?サイズイメージピンの注釈

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 
    if annotation is MKUserLocation { 
     return nil 
    } 

    let annotationIdentifier = "SomeCustomIdentifier" // use something unique that functionally identifies the type of pin 

    var annotationView: MKAnnotationView! = mapView.dequeueReusableAnnotationViewWithIdentifier(annotationIdentifier) 

    if annotationView != nil { 
     annotationView.annotation = annotation 
    } else { 
     annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier) 

     annotationView.image = UIImage(named: "pin maps.png") 

     annotationView.canShowCallout = true 
     annotationView.calloutOffset = CGPointMake(-8, 0) 

     annotationView.autoresizesSubviews = true 
     annotationView.rightCalloutAccessoryView = UIButton(type: UIButtonType.DetailDisclosure) as UIView 
    } 

    return annotationView 
} 

答えて

19

ピン画像の最大サイズはありません。 UIImageのサイズを変更する必要があります。

let annotationIdentifier = "SomeCustomIdentifier" 
    var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(annotationIdentifier) 
    if annotationView == nil { 
     annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier) 
     annotationView?.canShowCallout = true 

     // Resize image 
     let pinImage = UIImage(named: "pin maps.png") 
     let size = CGSize(width: 50, height: 50) 
     UIGraphicsBeginImageContext(size) 
     pinImage!.drawInRect(CGRectMake(0, 0, size.width, size.height)) 
     let resizedImage = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 

     annotationView?.image = resizedImage 

     let rightButton: AnyObject! = UIButton(type: UIButtonType.DetailDisclosure) 
     annotationView?.rightCalloutAccessoryView = rightButton as? UIView 
    } 
    else { 
     annotationView?.annotation = annotation 
    } 
+0

それは** CGRectMakeが** swft – Saneth

+0

pinImage.drawではないと言う(中:CGRect(X:0、Y:0、幅:size.width、高さ:size.height)) –

+0

私は考え anView?.frame.size = CGSize(幅:30、高さ:40) すべてのdrawContextの代わりに –