swift - 在 Swift 中重复 CGAffineTransformMakeRotation

标签 swift rotation cgaffinetransform

我想用一种带有旋转的淡入/淡出来替换 View 。 这是我的功能

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 但没有成功。

有办法重复吗?

最佳答案

尝试将转换重置为其身份:)

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

    }
}

关于swift - 在 Swift 中重复 CGAffineTransformMakeRotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37767815/

相关文章:

网络连接较差时iOS远程通知角标(Badge)计数策略

javascript - 以编程方式旋转要素 Open Layers

ios - 围绕一个点旋转的一步仿射变换?

iphone - 如何为 View 转换的一部分设置动画

ios - 是否可以从 Swift 中的 UITextView 元素的光标位置获取索引(String.Index)值?

ios - 当新行插入 tableView 时,我是否必须调用 begin/endUpdates 方法?

iphone - iPhone 旋转时按钮消失

iphone - 如何处理不在 UINavigationController 堆栈顶部的 UIViewController 的旋转?

ios - 如何在 iOS 中创建旋转的彩虹色环

ios - Swift Action 扩展 NSString 错误?