 }
 
 
+// MARK: ContentView Size Change Handling
+private extension ZoomView {
+    func _contentViewSizeChanged() {
+        let scrollView: UIScrollView = self._scrollView
+        let contentViewSize: CGSize = self._contentView.size
+        
+        guard scrollView.contentSize != contentViewSize else {
+            return
+        }
+        
+        scrollView.contentSize = contentViewSize
+        self._updateZoomScales()
+        self._adjustContentPosition()
+    }
+}
+
+
 // MARK: Update Content Position
 private extension ZoomView {
     func _adjustContentPosition() {

        self._zoomOut(animated: animated)
    }
    
    // Call these when you changed the size of the
    // contentView to ensure that the minimum and 
    // maximum zoomScale are updated accordingly
    public func updateZoomScales() {
        self._updateZoomScales()
    }
}


    }
    
    // Designated Init
    fileprivate init(frame: CGRect, contentView: UIView) {
        self._contentView = contentView
        super.init(frame: frame)
        self._addSubviews()
