在Swift中使用UIButton动画

时间:2015-08-18 18:37:36

标签: 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-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拖到我要通过Storyboard中的图像设置动画的按钮上。 我究竟做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要做的是不重新初始化函数UIButton中的animation;所以,注释掉这一行:

//var animationButton : UIButton!

除了IBOutlet之外,我们还需要IBAction您的函数animation。通过控制拖动"线来做与按钮相同的操作"到功能块(检查IBAction,而不是IBOutlet)。

当您还在故事板中时,有点走路:

  • 您所拥有的只有一个名为animationButton的按钮,它是从您的故事板到您的代码的IBOutlet,通过控制拖动&#34;行&#34;。< / p>

  • 对于您的animation功能: 控制 - 从按钮a&#34; line&#34;到animation函数的块。

  • 在故事板中为您设置初始图像,如下文所述。

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

请在故事板中点击右侧&#34;属性检查员&#34;然后设置一个图像,表示&#34;图像&#34;。作为测试,我将其设置为&#34; 1.jpg&#34;。

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

@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()
}

刚刚进行了快速测试;它获取触摸事件,图像在按钮上生动。希望这会有所帮助。