Ios 在Swift中处理按钮动画

Ios 在Swift中处理按钮动画,ios,swift,animation,uibutton,Ios,Swift,Animation,Uibutton,我一直在尝试让这段代码发挥作用,但我似乎无法让我的UIButton在图像中设置动画 @IBOutlet weak var screenButton: UIButton!; func animation(){ var animationButton : UIButton!; var imageList = [UIImage](); var image1:UIImage = UIImage(named:"3fingers-o-l-animation

我一直在尝试让这段代码发挥作用,但我似乎无法让我的UIButton在图像中设置动画

@IBOutlet weak var screenButton: UIButton!;

func animation(){
        var animationButton : UIButton!; 
        var imageList = [UIImage]();
        var image1:UIImage = UIImage(named:"3fingers-o-l-animation1.png")!;
        var image2:UIImage = UIImage(named:"4fingers-o-l-animation1.png")!;

        animationButtonscreenButton = screenButton;
        imageList = [image1, image2];

        animationButton!.imageView!.animationImages = imageList;
        animationButton!.imageView!.animationDuration = 1.0;
        animationButton!.imageView!.startAnimating();
    }
在写了这段代码之后,我从screenButton拖了一条线到我想要在故事板中的图像中设置动画的按钮。
我做错了什么

您需要做的是不要重新初始化功能
动画中的
ui按钮
;因此,请将这一行注释掉:

//var animationButton : UIButton!
除了有一个
IBOutlet
,我们还需要一个
IBAction
到您的函数
动画
。通过控件拖动一条“线”到功能块,执行与按钮相同的操作(选中
IBAction
,而不是
IBOutlet

在故事板中进行一次小的穿行:


  • 您只有一个名为:
    animationButton
    的按钮,它是一个通过控件拖动“线”从故事板到代码的
    IBOutlet

  • 对于
    动画
    功能: 还可以控制从情节提要按钮a“线”到
    动画
    功能块的拖动

  • 在故事板中为您的按钮设置初始图像,如下所述

此外,我们需要在故事板中设置初始图像;否则,按钮的图像属性为
nil

请在情节提要中单击右侧的“属性检查器”,然后在显示“图像”的位置设置图像。作为测试,我将其设置为“1.jpg”

因此,您的代码应该如下所示:

@IBOutlet weak var animationButton: UIButton!
@IBAction func animation()
{
    print("button touched")
    //var animationButton : UIButton!
    var imageList = [UIImage]()
    var image1:UIImage = UIImage(named:"1.jpg")!
    var image2:UIImage = UIImage(named:"2.jpg")!

    //animationButtonscreenButton = screenButton;
    imageList = [image1, image2];

    animationButton!.imageView!.animationImages = imageList
    animationButton!.imageView!.animationDuration = 1.0
    animationButton!.imageView!.startAnimating()
}

只是进行了一次快速测试;它获取触摸事件,并在按钮上设置图像动画。希望这有帮助。

ui按钮未初始化…这就是为什么您应该使用
适当时。不要
所有的代码,因为它会隐藏bug。如果有什么东西应该在那里,使用一个力展开
。或者在这种情况下,只是一个非可选变量。你会很早就看到这个问题。i)初始化ui按钮ii)设置它的帧iii)在视图上添加子视图我已经尝试了你的建议,但仍然无法让它工作。我已经用我所做的编辑了我的问题。谢谢。当阅读你的答案时,我发现我的代码有什么问题。我的按钮的图像属性为零。在那个区域放置一个图像修复了我的问题,我的屏幕现在像疯了一样动画!