当我使用' UIPanGestureRecognizer'移动一个UIImageView'对象,我注意到了中心'属性没有改变。为什么这样,我做错了什么?这是代码:
func handlePanning1(recognizer: UIPanGestureRecognizer)
{
var index: Int = recognizer.view!.tag - 1 // index in the arrays for this piece
var newTranslation: CGPoint = recognizer.translationInView(pieces[index])
recognizer.view?.transform = CGAffineTransformMakeTranslation(lastTranslations[index].x + newTranslation.x, lastTranslations[index].y + newTranslation.y)
// THIS ALWAYS PRINTS OUT THE SAME WHILE I'M PANNING
// AND IF I PAN MULTIPLE TIMES IN DIFFERENT DIRECTIONS (AKA IT NEVER CHANGES)
print(Int(pieces[index].center.x))
print("\n")
if recognizer.state == UIGestureRecognizerState.Ended {
lastTranslations[index].x += newTranslation.x
lastTranslations[index].y += newTranslation.y
}
}
答案 0 :(得分:0)
您正在对视图应用变换,您实际上并未移动它。想想它好像它在某个地方,但是当它被渲染时,有指示来扭曲它是如何显示的。如果您希望视图具有不同的位置,则必须更改其中心属性而不是转换它。