 
   private let targetPosition: RMessagePosition
 
-  /** The vertical space between the message top to its view controller top */
-  private lazy var viewTopConstraint: NSLayoutConstraint = {
-    if targetPosition != .bottom {
-      return NSLayoutConstraint(
-        item: view, attribute: .bottom, relatedBy: .equal,
-        toItem: superview, attribute: .top, multiplier: 1, constant: 0
-      )
-    } else {
-      return NSLayoutConstraint(
-        item: view, attribute: .top, relatedBy: .equal, toItem: superview,
-        attribute: .bottom, multiplier: 1, constant: 0
-      )
-    }
-  }()
-
-  private lazy var viewTopStartConstraint = viewTopConstraint
-
-  /** The final constant value that should be set for the topToVCTopLayoutConstraint when animating */
-  private var viewTopEndConstraint: NSLayoutConstraint?
+  /** The starting animation constraint for the view */
+  private var viewStartConstraint: NSLayoutConstraint?
+
+  /** The ending animation constraint for the view */
+  private var viewEndConstraint: NSLayoutConstraint?
+
   private var contentViewSafeAreaGuideConstraint: NSLayoutConstraint?
 
   /** The amount of vertical padding/height to add to RMessage's height so as to perform a spring animation without

      constant = -springAnimationPadding - superview.safeAreaInsets.top
    }

    viewTopEndConstraint = NSLayoutConstraint(
      item: view, attribute: viewAttribute, relatedBy: .equal,
      toItem: superview.safeAreaLayoutGuide,
      attribute: layoutGuideAttribute, multiplier: 1,
      constant: constant
    )
    viewTopEndConstraint?.constant += verticalOffset
  }

  // Calculate the padding after the view has had a chance to perform its own custom layout changes via the delegate

      self.delegate?.animatorIsAnimatingDismissal?(self)
      UIView.animate(
        withDuration: self.dismissalDuration, animations: {
          viewEndConstraint.isActive = false
          viewStartConstraint.isActive = true
          self.delegate?.animationBlockForDismissal?(self)
          self.view.alpha = self.animationStartAlpha
          self.view.superview!.layoutIfNeeded()
