在Swift中重复一个CGAffineTransformMakeRotation

时间:2016-06-11 19:36:48

标签: swift rotation cgaffinetransform

我想用一种带旋转的fadeIn / fadeOut替换视图。 这是我的功能

func animateSendButton(enter: Bool)
{
    let rotation: CGFloat = enter ? 180 : -180

    UIView.animateWithDuration(0.5, animations: {
        let transform = CGAffineTransformMakeRotation(self.DEGREES_TO_RADIANS(rotation))
        self.sendImage.transform = transform
        self.sendImage.layer.opacity = enter ? 0.0 : 0.87
        self.sendImage2.transform = transform
        self.sendImage2.layer.opacity = enter ? 0.87 : 0.0

    })
}

然而,仅在不透明度改变之后,旋转仅工作一次。 我试过CGATransformRotate,但它没有用。

有没有办法重复一遍?

1 个答案:

答案 0 :(得分:1)

尝试将转换重置为其标识:)

func animateSendButton(enter: Bool)
{
    let alpha = enter ? 0.0 : 0.87
    let transfrom = enter ? CGAffineTransformRotate(CGAffineTransformIdentity, DEGREES_TO_RADIANS(180)) : CGAffineTransformIdentity

    UIView.animateWithDuration(0.6, delay: 0.0, options: .CurveEaseIn, animations: {
        self.sendImage.transform = transform
        self.sendImage.layer.opacity = alpha
        self.sendImage2.transform = transform
        self.sendImage2.layer.opacity = alpha

    }) { (complete) in

    }
}