UIPinchGesture?为什么它只在我旋转设备后显示缩放结果

时间:2015-03-19 05:59:24

标签: ios objective-c swift uiview gesture

我尝试使用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:"))
    }
}

1 个答案:

答案 0 :(得分:1)

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

此时,只有在您旋转设备时才会更新用户界面。