UIPinch 手势?为什么它仅在我旋转设备后才显示缩放结果

UIPinchGesture ? why it show the scaled result only after I rotate the device

我正在尝试使用 UIPinchGesture 缩放我通过 bezierPath 绘制的简单人脸,但是当我用两根手指捏住屏幕(放大或缩小)时,它没有显示结果,只有当我旋转设备,然后显示缩放的脸,非常感谢您关于如何修复它的建议:

下面是我用来实现 pinchGesture 的代码 在我的 faceView.swift:

func scale(gesture: UIPinchGestureRecognizer){
    if gesture.state == .Changed {
        scale *= gesture.scale
        gesture.scale = 1 
    }
}

在我的 ViewController.swift:

 @IBOutlet weak var faceView: FaceView! {
    didSet{
        faceView.dataSource = self
faceView.addGestureRecognizer(UIPinchGestureRecognizer(target:faceView,     
action:"scale:"))
    }
}

问题不应该出在您粘贴的代码中,因为您知道缩放确实有效,只是不会立即绘制。我相信你应该用 { didSet { setNeedsDisplay() } } 声明 FaceView 的比例 属性 以在每次更改比例时更新 UI。

目前,UI 只有在您旋转设备时才会更新。