         curAnchor = anchorForTouchLoc(touchStart!)
         
         // When resizing, all calculations are done in the superview's coordinate space.
-        if curAnchor!.isResizing() {
+        if enableResizing && curAnchor!.isResizing() {
             touchStart = touch.location(in: superview)
         }
     }
     
     override open func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
+        guard enableMoving || enableResizing else { return }
+        
         if curAnchor == nil || superview == nil {
             assertionFailure("Shouldn't be nil")
             return

        return smallestDist < centerDist * resizeDistanceToCenterFactor ? closestAnchor : noAnchor
    }
    
    fileprivate func superviewBoundWidth() -> CGFloat {
        guard let superview = superview else {
            return 0
        }

                    newWidth = max(newWidth, MoView.minWidth)
                }
                // right
                if (newX + newWidth > superX + superviewContentWidth() &&
                    self.frame.size.width != newWidth) {
                    newWidth = superviewContentWidth() - newX;
                    newWidth = max(newWidth, MoView.minWidth)
                }
                // top
