Блокируйте движения в UIView

#ios #swift #uiview

Вопрос:

Я создаю свое собственное пользовательское меню. Он перемещается так, как должен, но как только вы начинаете двигаться, например, вправо, влево или вверх, видны углы этого UIView. Как заставить вид перемещаться только вправо и влево? Код приведен ниже под картинками

введите описание изображения здесь
введите описание изображения здесь
введите описание изображения здесь

  @objc private func handlePan(recognizer: UIPanGestureRecognizer) {
        guard let piece = recognizer.view else { return }
        
        let translation = recognizer.translation(in: piece.superview)
        let velocity = recognizer.velocity(in: piece.superview)
    
        
        switch recognizer.state {
        case .began:
            
            print("began translation:(translation) (velocity)")
            self.initialCenter = piece.center
        case .changed:
                print("changed translation:(translation) (velocity)")
                let newCenter = CGPoint(x: initialCenter.x   translation.x, y: initialCenter.y   translation.y)
                piece.center = newCenter
            
        case .ended:
            print("ended translation:(translation) (velocity)")
        default:
            print("default")
        }
    

    
    }


    @objc func didTapMenuButton() {
    navigationController?.isNavigationBarHidden = true
    UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: .curveEaseInOut) {
        self.containerView.frame.origin.x = self.isSlideInMenuPresented ? 0 : self.containerView.frame.width - self.slideInMenuPadding
    } completion: { (finished) in
        self.isSlideInMenuPresented.toggle()
    }
}