在按钮动作下声明的功能不起作用

时间:2019-06-05 13:02:23

标签: swift xcode

我正在制作一个应用程序,当您按下按钮时,我需要运行一些功能。当您按下按钮时,我没有任何错误

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBOutlet var Background: UIView!
    @IBOutlet weak var RedOverlay: UIView!
    @IBOutlet weak var Text: UILabel!



    var timer = Timer()
    var seconds = 3
    var timerRunning = false


    @IBAction func screenPressed(_ sender: Any) {
        func runTimer() {
                timer = Timer.scheduledTimer(timeInterval: 1, target: self,   selector: (#selector(ViewController.updateTimer)), userInfo: nil, repeats: true)
            timerRunning = true
            }
    }

    @objc func updateTimer() {
        seconds -= 1
        Text.text = String(seconds)
        if seconds < 2 {
            timer.invalidate()
            UILabel.animate(withDuration: 0.5, animations: {
                self.Text.alpha = 0
            })
            backgroundChange()
        }
    }

    func backgroundChange() {
        let wait = Int.random(in: 1 ... 10)
        DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(wait), execute: {
            self.Text.alpha = 1
            self.Text.text = "Go"
            self.RedOverlay.alpha = 1
        })
    }
}

我使用情节提要板,因此该功能通过插座连接到按钮

2 个答案:

答案 0 :(得分:0)

您正在IBAction中定义函数。

移动您的

func Runtimer() { ... } 

在其外部并从内部调用:

@IBAction func screenPressed(_ sender: Any) {
    runTimer()
}

答案 1 :(得分:0)

您已将Timer调用包装在一个函数(GeoName X1990 X1991 X1992 X1993 X1994 X1995 X1996 X1997 X1998 X1999 X2000 X2001 X2002 X2003 X2004 X2005 X2006 X2007 X2008 X2009 X2010 X2011 X2012 X2013 X2014 X2015 X2016 X2017 X2018 1 Alabama 20683 21008 21621 21633 22253 22813 23407 32887 33736 34783 35165 35008 35908 36636 38737 39692 39922 39776 39273 37416 38087 38562 38687 38954 38479 38885 38977 39600 40279 2 Alaska 52002 45285 44418 43454 43407 45678 44812 68947 66390 65178 62929 64657 66758 65006 66337 67549 71845 75135 74018 79894 75852 75683 78957 74283 72265 72652 70947 70956 70936 3 Arizona 22151 21630 23056 23347 24523 25272 26351 35582 37503 39431 40265 40326 40641 42346 43034 45052 45991 46194 44182 40214 40183 40660 40919 40716 40602 40891 41564 42164 43096 )内,但是您从未真正执行过该函数。我只需要删除函数包装器即可。

sitecode      sitename q13 q15 q16 q17 q18 q25 q26 q27 q28 q29 q30 q32 q33 q41 q42 q46 q47 q48 q49 q50 q55 q57 q58 q59 q60 q61 q62 q63 q64 q65 q68 q69 q70 q71 q80 q82 qbikehelmet qtaughtHIV unemp
       AR Arkansas (AR)   1   1   1   4   1   2   2   2   1   1   1   6   4   4   1   6   5   3   1   1   1   1   2   2   1   1   1   1   1   1   3   2   1   3   7   6           2          1   4.6
       AR Arkansas (AR)   1   1   1   1   1   2   2   2   1   1   2   1   1   1   1   1   1   1   1   1   1   1   1   2   1   1   1   1   1   1   3   4   2   2   7   6           2          1   4.6
       AR Arkansas (AR)   1   1   1   2   1   2   2   2   1   1   1   3   4   1   1   1   1   1   1   1   1   1   2   1   5   2   3   3   2   4   2   3   1   1   4   6           2          1   4.6
       AR Arkansas (AR)   1   1   1   1   1   2   2   2   1   1   1   4   2   4   5   5   5   4   1   3   1   1   2   1   2   7   5   3   2   4   3   3   5   5   6   6           2          1   4.6
       AR Arkansas (AR)   1   1   3   8   1   1   2   2   1   1   1   1   1   2   2   2   5   1   1   2   1   1   2   2   1   1   1   1   1   1   4   4   7   3   7   6           2          1   4.6
       AR Arkansas (AR)   1   1   1   4   3   1   2   2   1   1   1   7   4   4   1   5   4   2   1   1   1   1   2   1   2   7   4   3   2   7   2   2   1   1   7   1           2          2   4.6
      percapita
     33681
     33681
     33681
     33681
     33681
     33681