首页 > 解决方案 > 如何快速独立地增加和减少 UIView 的宽度和高度?

问题描述

我有一个视图,我想根据用户的需要调整它的大小,这意味着用户可以独立地增加或减少 UIView 的高度或宽度。我尝试过使用捏合手势,但它可以同时使用宽度和高度。我在 UIView 上实现了平移手势以在屏幕上移动它。

func addGestures() {
    let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan))
    gestureRecognizer.delegate = self
    myView.addGestureRecognizer(gestureRecognizer)
    
    myView.isUserInteractionEnabled = true
    myView.isMultipleTouchEnabled = true
    
    //add pinch gesture
    let pinchGesture = UIPinchGestureRecognizer(target: self, action:#selector(pinchRecognized(pinch:)))
    pinchGesture.delegate = self
    myView.addGestureRecognizer(pinchGesture)
    
}

@objc func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
        if gestureRecognizer.state == .began || gestureRecognizer.state == .changed {
            let translation = gestureRecognizer.translation(in: self.view)
            // note: 'view' is optional and need to be unwrapped
            gestureRecognizer.view!.center = CGPoint(x: gestureRecognizer.view!.center.x + translation.x, y: gestureRecognizer.view!.center.y + translation.y)
            gestureRecognizer.setTranslation(CGPoint.zero, in: self.view)
        }
    }

@objc func pinchRecognized(pinch: UIPinchGestureRecognizer) {
        if let view = pinch.view {
            view.transform = view.transform.scaledBy(x: pinch.scale, y: pinch.scale)
            pinch.scale = 1
        }
    }

那么我该怎么做呢?

标签: uiviewuigesturerecognizeruipangesturerecognizeruipinchgesturerecognizer

解决方案


推荐阅读