我有一个游戏,其中有一个对象(UIImageView = redBar),一旦场景加载完毕,我想将其从其起点移动到给定点(在这种情况下,对角向下30,然后再向后30)。
我正在做的是:
UIView.animateWithDuration(1, animations: {self.redBar.center = CGPointMake(self.redBar.center.x + 30, self.redBar.center.y + 30)}, completion: {(value: Bool) in
UIView.animateWithDuration(1, animations: {self.redBar.center = CGPointMake(self.redBar.center.x - 30, self.redBar.center.y - 30)}, completion: nil)})
发生的是,我将我的redBar UIImageView放在情节提要上,并在加载该场景时,好像我的redBar图像会向上移动然后开始设置动画。这是否是对图像运动进行动画处理的最佳方法?我真的需要帮助...
最佳答案
正确的方法是使用CGAffineTransform。刚放
self.redbar.transform = CGAffineTransformMakeTranslation(30, 30)
在animateWithDuration块内,然后使用-30作为返回路径(形式为(x:CGFloat,y:CGFloat))
确保从故事板实例化UIImageView或将其添加到viewDidLoad()中。如果添加到代码中,则最安全的方法是在viewWillLayoutSubviews()中设置其框架。
让我知道您是否需要更多代码。