首页 > 解决方案 > 在 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()
    }
}

标签: iosswiftuiview

解决方案


推荐阅读