title: UIPropertyAnimator causes crash
body: <p>I'm experiencing a strange crash caused by <code>UIPropertyAnimtor</code>. I have <code>UICollectionView</code> with custom layout (for strechy header), and I'm using <code>UIPropertyAnimator</code> for animating blur when <code>UICollectionView</code> is pulled down. </p>
  
  <p>Problem is, when I dismiss a scene (sometimes after I push it again), application crashes with following message: </p>
  
  <pre><code>objc[11346]: Cannot form weak reference to instance (0x121eeda60) of class [APPLICATION_NAME].StrechyHeaderCollectionReusableView. It is possible that this object was over-released, or is in the process of deallocation.
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/fBHLl.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fBHLl.png" alt="enter image description here"></a></p>
  
  <p>When I go back incode on what caused the crash, its the call in <code>deinit</code>. Anyway, the way I understand <code>UIPropertyAnimator</code> it's done right. Without !animator.stopAnimation(true)<code>the app would crash due to unreleased</code>UIProperyAnimator`.</p>
  
  <p><a href="https://i.stack.imgur.com/qucCT.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/qucCT.png" alt="enter image description here"></a></p>
  
  <p>This is code in my header view:</p>
  
  <pre><code>final class StrechyHeaderCollectionReusableView: UICollectionReusableView, Nibable {
  
      // some code...
  
      lazy var animator: UIViewPropertyAnimator = {
          UIViewPropertyAnimator(duration: 3.0, curve: .easeOut, animations: { [weak self] in
              self?.blurVisualEffectView.effect = UIBlurEffect(style: .dark)
          })
      }()
  
      override func awakeFromNib() {
          super.awakeFromNib()
  
          blurVisualEffectView.effect = nil
      }
  
      // some code...
  
      deinit {
          animator.stopAnimation(true)
      }
  }
  </code></pre>
  
  <p>I'm changing animaiton fraction from a data source + delegate class, and visual effect view is inside custom header xib. </p>
  
  <pre><code>func scrollViewDidScroll(_ scrollView: UIScrollView) {
  
      // some code...
  
      let strechyHeader = headerView(in: collectionView)
      strechyHeader?.isBackButtonHidden = isBackButtonHidden
  
      if scrollView.contentOffset.y &gt; 0 {
          strechyHeader?.animator.fractionComplete = 0
      } else {
          strechyHeader?.animator.fractionComplete = abs(scrollView.contentOffset.y) / 100
      }
  }
  </code></pre>
  
  <p>Any ideas? Thank you guys!</p>