    
    private func _update(footerView: UIView) {
       _footerContainerView.subviews.forEach { $0.removeFromSuperview() }
-      
       _footerContainerView.addSubview(footerView)
       
-      NSLayoutConstraint.activate([
-         footerView.centerXAnchor.constraint(equalTo: _footerContainerView.centerXAnchor),
-         footerView.centerYAnchor.constraint(equalTo: _footerContainerView.centerYAnchor),
-         _footerContainerView.heightAnchor.constraint(equalTo: footerView.heightAnchor),
-         ])
+      if footerView.translatesAutoresizingMaskIntoConstraints {
+         NSLayoutConstraint.activate([
+            _footerContainerView.widthAnchor.constraint(equalTo: footerView.widthAnchor),
+            _footerContainerView.heightAnchor.constraint(equalTo: footerView.heightAnchor),
+            ])
+      } else {
+         NSLayoutConstraint.activate([
+            footerView.centerYAnchor.constraint(equalTo: _footerContainerView.centerYAnchor),
+            footerView.centerXAnchor.constraint(equalTo: _footerContainerView.centerXAnchor),
+            _footerContainerView.widthAnchor.constraint(equalTo: footerView.widthAnchor),
+            _footerContainerView.heightAnchor.constraint(equalTo: footerView.heightAnchor),
+            ])
+      }
    }
 }
 

      return control
   }()
   
   fileprivate lazy var _footerContainerView: UIView = {
      let footerView = UIView(frame: .zero)
      footerView.translatesAutoresizingMaskIntoConstraints = false

   fileprivate var _elements: [Elemental] = []
   
   // MARK: - Public Properties
   public var footerViewTopPadding: CGFloat = 0 {
      didSet {
         _footerViewTopSpaceConstraint.constant = footerViewTopPadding
      }
   }
   
   public var footerViewBottomPadding: CGFloat = 0 {
      didSet {
         _footerViewBottomSpaceConstraint.constant = -footerViewBottomPadding
      }
   }
   
   public var footerView: UIView? {
      didSet {
         switch footerView {
