我正在尝试在按钮中创建动画旋转图像,但是图像在动画之前跳了起来,即旋转180度并开始动画

我的代码:

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


我真的不知道为什么会这样吗?

请帮帮我。

最佳答案

这对我有用

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,则转换可能会失败。

ios - CGAffineTransformRotate-在动画之前跳转-LMLPHP

关于ios - CGAffineTransformRotate-在动画之前跳转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37681920/

10-08 23:12