         self.contentCoverView.addGestureRecognizer(panOnContentCoverVewGesture)
         
         self.view.addSubview(self.contentCoverView)
+    }
+    
+    open override func viewDidLayoutSubviews() {
+        super.viewDidLayoutSubviews()
+        self.updateSideMenuFrame()
+        self.contentCoverView.frame = self.view.bounds
+    }
+    
+    private func updateSideMenuFrame() {
+        guard let sideView = self.sideViewController?.view else {
+            return
+        }
+        
+        var frame = sideView.frame
+        frame.size.width = self.sideViewWidth
+        if self.isSideViewControllerPresented {
+            frame.origin.x = self.menuSide == .left ? 0.0 : self.view.frame.width - self.sideViewWidth
+        } else {
+            frame.origin.x = self.menuSide == .left ? -self.sideViewWidth : self.view.frame.width
+        }
+        sideView.frame = frame
     }
     
     //

        let calculatedXPosition = menuSide == .left ? min(sidebar.frame.size.width / 2.0, sidebar.center.x + vector.x) :
            max(sidebar.frame.size.width / 2.0, sidebar.center.x + vector.x)
        
        let shouldMove = menuSide == .left ? (calculatedXPosition < sidebar.frame.width / 2) :
            (calculatedXPosition - sidebar.frame.width / 2 > SideViewControllerTrailingIndent - SideViewControllerOpenedLeadingOffset)
        if shouldMove {
            sidebar.center = CGPoint(x: calculatedXPosition, y: sidebar.center.y)
        }

    
    //
    // MARK: Public properties
    
    /**
     ???
     */
    open var sideViewWidth: CGFloat = SOContainerViewController.kSideMenuDefaultWidth {
        didSet {
            self.updateSideMenuFrame()
        }
    }
    
    /**
     Limit the width for the PanGestureRecognizer to prevent collision with UITableView (swipe to delete)
