2017-12-03 198 views
0

我有一個UIImageView對象,它位於屏幕全屏中央。我製作了一個動畫,以相同的代碼執行縮放和翻譯。這裏是源代碼:swift - 在修復屏幕座標上動畫時轉換UIImageView

UIView.animate(withDuration: 1.0, animations: { 
     let originalTransform = self.idImageView.transform 
     let scaledTransform = originalTransform.scaledBy(x: 0.2, y: 0.2) 
     let scaledAndTranslatedTransform = scaledTransform.translatedBy(x: 100, y: 100) 
     self.idImageView.transform = scaledAndTranslatedTransform 
    }, completion: { (finished) in 
     self.animationCompeletedSuccessfully(finished) 
    }) 

我希望我的UIImageView舉動統籌的X = 100和Y = 100但翻譯100點相對於它的中心移動。我怎樣才能把它翻譯成窗口座標系? Apple Documentation of traslatedBy(x: , y:) 我已閱讀這一個,但不能清楚地瞭解有關合作ordiante系統

回答

1

比方說,你imageview中心有xy座標和widthheight。 你想要的目的地:destinationXdestinationY

你的翻譯是:

  • 用x:destinationX - x + width/2
  • 由y:destinationY - y + height/2

請記住,如果你做的規模,你widthheight應該乘以scaleRatio

+0

謝謝回覆。這部分工作。我不知道爲什麼。它正在將我的觀點轉移到預期點附近。我不明白你的最後一行。你能解釋一下嗎? –

+0

你的情況是'destinationX - x + width/2 * 0.2'和'y'相同 –

+0

請編輯你的代碼如何實現它,然後我可以幫助你 –

相關問題