如何使用按钮上的不同点执行相同动画单击ios Swift

如何使用按钮上的不同点执行相同动画单击ios Swift,ios,swift,animation,ibaction,Ios,Swift,Animation,Ibaction,我试图通过点击按钮来增加温度 当我第一次点击按钮时,它是工作的,但当我再次点击按钮时,什么都没有发生。 我使用图像视图(红色)显示温度 这是我在操作背后使用的代码 ] 每次单击+按钮时,它都会增加,但不会发生 有人能解释一下问题是什么吗 CGAffineTransformMakeTransform如果只移动帧,则不一定需要进行转换。同样,只需为视图设置一个新框架即可。此外,如果不在任何位置重置变换,则第二次将不会设置动画。或者,您应该增加/减少值-30,而不是每次都使用相同的值,而不是重置。要移

我试图通过点击按钮来增加温度 当我第一次点击按钮时,它是工作的,但当我再次点击按钮时,什么都没有发生。 我使用图像视图(红色)显示温度 这是我在操作背后使用的代码 ]

每次单击+按钮时,它都会增加,但不会发生
有人能解释一下问题是什么吗

CGAffineTransformMakeTransform如果只移动帧,则不一定需要进行转换。同样,只需为视图设置一个新框架即可。此外,如果不在任何位置重置变换,则第二次将不会设置动画。或者,您应该增加/减少值-30,而不是每次都使用相同的值,而不是重置。要移动图像,您应该将变换串联起来

UIView.animateWithDuration(3.0, animations: {

   let transform =  CGAffineTransformMakeTranslation(0, -30)
   self.progress.transform = CGAffineTransformConcat(self.progress.transform, transform)
})

你希望这个结果是什么:自我,进步。框架。起源。X -Self.Pravest.Fr.Orth.X.XI这样做是因为我的动画在X轴上移动,甚至我不想这样,所以我用这种方式处理它。为什么不将0改为x?这只会在您第一次使用CGAffineTransformConcat时移动图像。在这种情况下,您可以指导我如何使用CGAffineTransformConcat吗?我不想重置它,我想要我的进度条(这是一个图像视图)要在Y轴上从最后一个位置移动,每当我单击按钮时,我都会看到一个教程,其中导师建议使用CGAffineTransformMakeTransform而不是直接移动视图的帧。我一直通过更改帧来制作动画,没有任何问题。您总是将y平移精确设置为-30。如果你想要增量转换,那么你需要在之前的转换中添加-30。移动框架不是一个好主意,尤其是如果你使用自动布局。建议使用CGAffineTransformation。您还可以设置自动布局约束的动画。如果您没有任何约束,那么性能应该不会有任何差异。我不知道使用concat如何比只增加一个变量更好。变量可能是更简单的操作。你可能是对的,但这种方法在阅读时更容易理解(只有2行,没有实例变量来记录用户点击按钮的次数)。老实说,这不会让你的应用程序运行缓慢。因此,事实上,更具可读性且不太复杂,我们可以承认这比添加一个变量要好。在这种情况下,我们需要跟踪用户点击按钮的次数
UIView.animateWithDuration(3.0, animations: {

   let transform =  CGAffineTransformMakeTranslation(0, -30)
   self.progress.transform = CGAffineTransformConcat(self.progress.transform, transform)
})