使用UIPanGestureRecognizer(Swift)进行平移时,为什么UIImageView.center没有变化?

时间:2014-10-31 19:15:10

标签: ios swift uiimageview uipangesturerecognizer panning

当我使用' 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
    }
}

1 个答案:

答案 0 :(得分:0)

您正在对视图应用变换,您实际上并未移动它。想想它好像它在某个地方,但是当它被渲染时,有指示来扭曲它是如何显示的。如果您希望视图具有不同的位置,则必须更改其中心属性而不是转换它。