2014-10-31 4 views
0

'UIPmagestureRecognizer'를 사용하여 'UIImageView'객체를 이동하면 'center'속성이 변경되지 않습니다. 왜 이래, 내가 뭔가 잘못하고있는거야? 코드는 다음과 같습니다.UIPanGestureRecognizer (Swift)로 패닝 할 때 UIImageView.center가 변경되지 않는 이유는 무엇입니까?

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

오 그래, 그 말이 완벽합니다. 따라서 'UIPanGestureRecognizer'로 패닝하는 것이 변형을 적용하거나 실제로 '중심'을 변경하여 이동하는 것이 더 낫습니다. –

+0

은 수행하려는 작업에 따라 다릅니다. 나는 어느 쪽이 더 효율적인지 보지 못했지만, 실제로 움직이는 것으로 생각 하겠지만 그것은 단지 가정 일뿐입니다. 그 위치로 업데이트하기 위해 센터에 의존한다면, 그냥 가서 센터를 업데이트하십시오. –