一个按钮,2个动作和名称更改,Swift?

时间:2014-09-10 15:59:57

标签: button swift action

我是这个领域的新手,所以也许是一个非常简单的问题,我不知道,关于swift。我知道如何制作2个按钮用于秒表,启动和停止。但我希望有相同的按钮来启动和停止秒表,然后文本从停止变为开始,这是可能的以及如何?

1 个答案:

答案 0 :(得分:3)

我能够创建一个符合您要求的简单iOS项目。这是一步一步的。

在项目的UIViewController中创建一个Storyboard场景,并将其命名为“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@IBOutlet与ViewController场景中的UIButton相关联。启动您的项目。

每次点击UIButton时,都会在“开始”和“停止”之间切换标题。每次单击“开始”,它都会在Xcode控制台中显示myInt的增加值。每次点击“停止”,它都会停止NSTimer并将myInt重置为0.