2014-09-10 60 views
0

我是這個領域的新手,所以也許很簡單的問題,我不知道,關於迅速。我知道如何讓2個按鈕用於秒錶,啓動和停止。但我想要有相同的按鈕來啓動和停止秒錶,然後文本從停止變爲開始,這是可能的,以及如何?一個按鈕,2個動作和名稱更改,Swift?

+0

我不確定這個問題是否真的與Swift有關。這是非常基本的可可/基金會的東西。你有開發iOS/OSX的經驗嗎? – 2014-09-10 16:32:05

+0

不,我剛剛在3個星期前開始在線搜索,但運氣不錯,但也許我甚至不知道足以正確搜索! – Jesper 2014-09-10 16:56:34

+0

我會建議拿起一本書或尋找關於使用Cocoa for iOS或OSX編程的介紹性教程。有太多的理由要回答你的問題,因爲它適合於在計算器上的答案。 – 2014-09-10 17:00:35

回答

2

我能夠創建一個簡單的iOS項目,符合您的要求。這是一步一步的。

在項目的Storyboard中創建一個UIViewController場景並將其命名爲「ViewController」。在場景中添加一個UIButton以及一些自動佈局約束。在您的Project Navigator中,在其中創建與下面的代碼UIViewController子文件:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var myButton: UIButton! 

    var timer: NSTimer? 
    var myInt = 0 

    var launchBool: Bool = false { 
     didSet { 
      if launchBool == true { 
       myButton.setTitle("Stop", forState: .Normal) 
       timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "fireStopWatch", userInfo: nil, repeats: true) 
      } else { 
       myButton.setTitle("Start", forState: .Normal) 
       timer?.invalidate() 
       timer = nil 
       myInt = 0 
      } 
     } 
    } 


    @IBAction func buttonAction(sender: AnyObject) { 
     launchBool = !launchBool //true to false, false to true... 
    } 

    func fireStopWatch() { 
     myInt += 1 
     println(myInt) 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     myButton.setTitle("Start", forState: .Normal) 
    } 

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

} 

鏈接你的@IBAction@IBOutletUIButton在你的ViewController的場景。啓動您的項目。

每次點擊您的UIButton時,它會在「開始」和「停止」之間切換標題。每次點擊「開始」時,它會在您的Xcode控制檯中顯示增加值myInt。每次點擊「停止」時,它會停止您的NSTimer並將myInt重置爲0.