按下按钮时旋转图像
rotate image on button press
我正在尝试在按下按钮时旋转 180 度并成像。现在我可以让它旋转 180,但是当我再次按下按钮时,图像不会旋转回来。我觉得我缺少一些简单的东西。
if 语句有效,我只是简化了代码,只留下了无效的部分。
if(self.dropdownConstraint.constant == -78)
{
//roate arrow up
UIView.animateWithDuration(0.5, animations: {
self.arrow.transform = CGAffineTransformMakeRotation((180.0 * CGFloat(M_PI)) / 180.0)
self.view.layoutIfNeeded()
})
}
else
{
//roate arrow down
UIView.animateWithDuration(0.5, animations: {
self.arrow.transform = CGAffineTransformMakeRotation((-180.0 * CGFloat(M_PI)) / -180.0)
self.view.layoutIfNeeded()
})
}
提前致谢!
变换不是累积的,所以第一个旋转 180 度(从 0 开始),第二个旋转 -180 度(也是从零开始),看起来是一样的。只需修改反向变换以将旋转设置回零即可:
UIView.animateWithDuration(0.5, animations: {
self.arrow.transform = CGAffineTransformMakeRotation(0)
self.view.layoutIfNeeded()
})
将转换设置为身份以撤消之前的转换:
UIView.animateWithDuration(0.5, animations: {
self.arrow.transform = CGAffineTransformIdentity;
self.view.layoutIfNeeded()
})
我正在尝试在按下按钮时旋转 180 度并成像。现在我可以让它旋转 180,但是当我再次按下按钮时,图像不会旋转回来。我觉得我缺少一些简单的东西。
if 语句有效,我只是简化了代码,只留下了无效的部分。
if(self.dropdownConstraint.constant == -78)
{
//roate arrow up
UIView.animateWithDuration(0.5, animations: {
self.arrow.transform = CGAffineTransformMakeRotation((180.0 * CGFloat(M_PI)) / 180.0)
self.view.layoutIfNeeded()
})
}
else
{
//roate arrow down
UIView.animateWithDuration(0.5, animations: {
self.arrow.transform = CGAffineTransformMakeRotation((-180.0 * CGFloat(M_PI)) / -180.0)
self.view.layoutIfNeeded()
})
}
提前致谢!
变换不是累积的,所以第一个旋转 180 度(从 0 开始),第二个旋转 -180 度(也是从零开始),看起来是一样的。只需修改反向变换以将旋转设置回零即可:
UIView.animateWithDuration(0.5, animations: {
self.arrow.transform = CGAffineTransformMakeRotation(0)
self.view.layoutIfNeeded()
})
将转换设置为身份以撤消之前的转换:
UIView.animateWithDuration(0.5, animations: {
self.arrow.transform = CGAffineTransformIdentity;
self.view.layoutIfNeeded()
})