在 Swift 中如何使 UIImageView 旋转动画?

41

我试图在Swift中通过动画将UIImageView旋转180度。

    UIView.animateWithDuration(1.0, animations: { () -> Void in
        self.arrowImageView.transform = CGAffineTransformMakeRotation(CGFloat(180 * M_PI))
    }) { (succeed) -> Void in

    }

但是根本没有动画效果。 我想使用animateWithDuration,因为我想在某个时刻将其返回到原始状态,使用CGAffineTransformMakeIdentity

使用UIView动画可以实现。

    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(1)
    UIView.setAnimationCurve(UIViewAnimationCurve.EaseIn)
    let radians = CGFloat(180 * M_PI / 180)
    arrowImageView.transform = CGAffineTransformMakeRotation(radians)
    UIView.commitAnimations()

请参见以下链接以获取有关此问题的更多信息:https://dev59.com/qmgt5IYBdhLWcg3w-ST1#48838627 - Jack
11个回答

-2
尝试调用arrowImageView.layoutSubviews(),请参考下面的代码:
    UIView.animateWithDuration(1.0, animations: { () -> Void in
        self.arrowImageView.transform = CGAffineTransformMakeRotation(CGFloat(180 * M_PI))
        self.arrowImageView.layoutSubviews()
    }) { (succeed) -> Void in

    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接