在Swift中工作UIButton动画

问题描述:

我一直在试图让这个snippit的代码工作,但我似乎无法让我的UIButton通过图像进行动画处理。在Swift中工作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拖动了一个按钮,我想通过故事板中的图像设置动画。 我在做什么错?

+2

UIButton未初始化... – Shoaib

+1

这就是为什么在适当的时候应该使用''''和'!'。不要“?”所有代码,因为它会隐藏错误。如果应该有什么东西在那里用武力解开'!'。或者在这种情况下只是一个非可选变量。你很早就会看到这个问题。 –

+1

i)初始化UIButton ii)设置它的框架iii)addSubview在你的视图上 – Shoaib

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

//var animationButton : UIButton! 

而且仅仅有一个IBOutlet,我们也是一个IBAction需要你的函数animation。通过控制拖动“行”到功能块(请检查IBAction,而不是IBOutlet),做与按钮相同的操作。

一个小步行通过,而你仍然在故事板:


  • 你有什么是只有一个名为按钮:animationButton,这是从你的故事板的IBOutlet您通过控制拖动“行”来实现代码。

  • 对于您的animation功能: 控制也从故事板从按钮“行”拖动到animation功能块。

  • 为故事板设置一个初始图像按钮,这将在下面简要提及。

此外,我们需要建立一个初始图像中的故事板;否则,该按钮的图像属性为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() 
} 

刚跑到一个快速测试;它会获得触摸事件和按钮上的动画图像。希望这可以帮助。

+1

谢谢。在阅读你的答案时,我发现我的代码出了什么问题。我的按钮的图像属性为零。在这个领域放置一个图像解决了我的问题,我的屏幕现在变得疯狂! –