0

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

1 回答 1

0

您正在对视图应用变换,实际上并没有移动它。把它想象成它在某个地方,但是当它被渲染时,有一些说明可以改变它的显示方式。如果您希望视图具有不同的位置,那么您必须更改其中心属性而不是转换它。

于 2014-10-31T19:18:18.543 回答