如何使用imageinsets为按钮图像设置动画?

时间:2019-02-16 02:33:22

标签: swift xcode animation uibutton uiimage

我希望我的按钮图像在单击时动画,并在再次单击时向后动画。

https://imgur.com/a/nsDIRXi

当我单击一次按钮时,我希望右边的箭头(这是检查器设置的图像)顺时针旋转90度(为此我有一组图像),当按钮再次单击按钮

但是Button具有一个带有图像插图的自定义类,我不知道如何正确地为图像设置动画。

class ButtonWithImage: UIButton {

override func layoutSubviews() {
    super.layoutSubviews()
    if imageView != nil {
        imageEdgeInsets = UIEdgeInsets(top: 5, left: (bounds.width - 35), bottom: 5, right: 5)
        titleEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: (imageView?.frame.width)!)
    }
  }
}

我已经尝试过此代码:

var image1:UIImage = UIImage(named: "img1")!
var image2:UIImage = UIImage(named: "img2")!
btn.setImage(image1, forState: UIControlState.Normal)
btn.imageView!.animationImages = [image1, image2]
btn.imageView!.animationDuration = 1.0
btn.imageView!.startAnimating()

但是它设置了没有图像插入的新图像,并且动画从不停止,而是再次循环。当我添加

btn.imageView!.stopAnimating() 

动画根本不起作用。

是否有更好的方法来获得所需的动画?

0 个答案:

没有答案