iOS MKMapView - Animate map Pins

前端 未结 1 598
滥情空心
滥情空心 2021-01-17 02:47

MKAnnotationView animation in iOS using Swift 4

Add animation to pins for adding pins to map smoothly. While adding pins to map, it is not smooth or

相关标签:
1条回答
  • 2021-01-17 03:17

    I tried it with the simple code

    I have created a simple code to fix this issue in swift 4.

    Here is my code,

    Override your viewForAnnotaion method something like this

    func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    
        var annotationView = self.mapView.dequeueReusableAnnotationView(withIdentifier: "Pin")
    
        if annotationView == nil{
            annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "Pin")
        }else{
            annotationView?.annotation = annotation
        }
    
        annotationView?.canShowCallout = false
    
        guard !annotation.isKind(of: MKUserLocation.self) else {
            //for the custom image on current location
                annotationView?.image = #imageLiteral(resourceName: "currentLocationPin")
                return annotationView
        }
    
     annotationView.image = UIImage(named: "pinGreen")
    
        let scaleTransform = CGAffineTransform(scaleX: 0.0, y: 0.0)  // Scale
        UIView.animate(withDuration: 0.2, animations: {
            annotationView?.transform = scaleTransform
            annotationView?.layoutIfNeeded()
        }) { (isCompleted) in
    
            // Nested block of animation
            UIView.animate(withDuration: 0.3, animations: {
                annotationView?.alpha = 1.0
                annotationView?.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
                AnimationUtility.viewSlideInFromBottom(toTop: annotationView!)
                annotationView?.layoutIfNeeded()
            })
        }
    
        return annotationView
    }
    

    For AnimationUtility class refer this link

    https://stackoverflow.com/a/49398148/8334818

    This code adds pins to map with smooth animation.

    0 讨论(0)
提交回复
热议问题