     }
     
     open func stopAnimating() {
+        if _imageView.isAnimating {
+            _imageView.stopAnimating()
+        }
+        
         guard isAnimating else {
             return
         }

    private var frameMissed: Bool = false
    
    private var displayLink: CADisplayLink?
    private var _image: APNGImage?
    private let _imageView: UIImageView = UIImageView(frame: .zero)
    
    // Number of played plays of the animated image.
    private var playedCount = 0
    
    public convenience init(image: APNGImage?) {
        self.init(frame: .zero)
        self.image = image
    }
    
    public convenience init(image: UIImage?) {
        self.init(frame: .zero)
        self._imageView.image = image
    }
    
    public override init(frame: CGRect) {
        super.init(frame: frame)
        commonSetup()

    }
    
    open func startAnimating() {
        
        guard let _ = _image else {
            _imageView.startAnimating()
            return
        }
        
        guard !isAnimating else {
            return
        }
