我使用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会动摇?
答案 0 :(得分:0)
而不是
sender.locationInView(sender.view)
试
sender.locationOfTouch(0, inView: sender.view)
locationInView似乎正在挑选一个未定义的触摸。