UIImageView在UIPinchGestureRecognizer事件中震动

时间:2014-11-06 12:53:20

标签: ios iphone uiimageview

我使用Swift实现iOS 8.1的捏合操作。 我引用了以下链接,但图像向上,向下,向左和向右抖动。

UIPinchGestureRecognizer. Make zoom in location of fingers, not only center

UIPinchGestureRecognizer position the pinched view between the two fingers

这是我在UIViewController中的代码,sender.view是UIImageView。

func pinchedView(sender:UIPinchGestureRecognizer) {

    if sender.numberOfTouches() < 2 {
        return
    }

    if sender.state == UIGestureRecognizerState.Began {
        lastScale = 1.0
        lastPoint = sender.locationInView(sender.view)
        return
    }

    let scale = 1.0 - (lastScale - sender.scale)
    sender.view!.transform = CGAffineTransformScale(sender.view!.transform, scale, scale)

    let newPoint = sender.locationInView(sender.view)
    var translation = CGPoint()
    translation.x = newPoint.x - lastPoint.x
    translation.y = newPoint.y - lastPoint.y
    sender.view!.transform = CGAffineTransformTranslate(sender.view!.transform, translation.x, translation.y)

    lastPoint = sender.locationInView(sender.view)
    lastScale = sender.scale
}

为什么UIImageView会动摇?

1 个答案:

答案 0 :(得分:0)

而不是

sender.locationInView(sender.view)

sender.locationOfTouch(0, inView: sender.view)

locationInView似乎正在挑选一个未定义的触摸。