2017-12-03 322 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

请编辑你的代码如何实现它,然后我可以帮助你 –