2014-11-06 85 views
1

我用Swift實現了捏操作iOS 8.1。 我參考了以下鏈接,但圖像上下左右搖晃一點一點。UIImageView在UIPinchGestureRecognizer事件中動搖

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會晃動?

回答

0

而不是

sender.locationInView(sender.view) 

嘗試

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

locationInView似乎是撿一個未定義的觸摸。