CGAffineTransformRotate - 在动画之前跳转

时间:2016-06-07 14:19:13

标签: ios swift animation cgaffinetransform

我试图在按钮中创建动画旋转图像,但图像在动画之前跳跃,即旋转180度并开始动画

我的代码:

@IBAction func switchListButtonClick(sender: UIButton) {
    UIView.animateWithDuration(1) {
        self.switchListButton.imageView?.transform = CGAffineTransformRotate((self.switchListButton.imageView?.transform)!, CGFloat(-M_PI_2))
    }
}

我真的无法理解为什么会这样?

请帮帮我。

1 个答案:

答案 0 :(得分:1)

这对我有用

self.switchListButton.imageView!.clipsToBounds = false;
self.switchListButton.imageView!.contentMode = .Center;

UIView.animateWithDuration(1) {

    self.switchListButton.imageView?.transform = CGAffineTransformRotate((self.switchListButton.imageView?.transform)!, CGFloat(-M_PI_2))
}

虽然不完全确定,但我想下面的图片可以说明为什么上面的代码工作。您可以看到,当您旋转UIView时,视图的边界可能会更改并超出其父视图(在图像下方的红线上方),因此如果将clipToBounds设置为true,则转换可能会失败。

enter image description here