Ios 在Swift中有可更换的按钮

Ios 在Swift中有可更换的按钮,ios,swift,button,timer,stopwatch,Ios,Swift,Button,Timer,Stopwatch,我目前正在学习Swift和iOS编程。我已经学会了创建一个显示秒表的秒表应用程序。我正在尝试将秒表的开始和停止按钮结合起来。这意味着当应用程序加载时,它会有一个开始按钮,但当我按下开始按钮时,它会变成停止按钮,当我按下时,计时器停止,按钮变为开始按钮。我已经搜索了互联网和堆栈溢出,但我找不到类似于我想要的东西。我的当前代码附在下面 import UIKit class ViewController: UIViewController { var timer = NSTimer() var

我目前正在学习Swift和iOS编程。我已经学会了创建一个显示秒表的秒表应用程序。我正在尝试将秒表的开始和停止按钮结合起来。这意味着当应用程序加载时,它会有一个开始按钮,但当我按下开始按钮时,它会变成停止按钮,当我按下时,计时器停止,按钮变为开始按钮。我已经搜索了互联网和堆栈溢出,但我找不到类似于我想要的东西。我的当前代码附在下面

import UIKit

class ViewController: UIViewController {

var timer = NSTimer()

var count = 0.0

func updateTime() {

    count = count + 0.1

    label.text = "\(count)"

}

@IBOutlet weak var label: UILabel!

@IBAction func start(sender: AnyObject) {

    timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: ("updateTime"), userInfo: nil, repeats: true)


    }

@IBAction func pause(sender: AnyObject) {

    timer.invalidate()

}


@IBAction func reset(sender: AnyObject) {

    timer.invalidate()

    count = 0

    label.text = "0"

}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.




}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

删除所有IBActions并执行此操作,仅删除操作是不够的,您需要右键单击按钮并断开所有@IBActions以删除完整的引用,否则将出现错误

//不要做这个@iAction这只是一个正常的函数


删除所有IBActions并执行此操作,仅删除操作是不够的,您需要右键单击按钮并断开所有@IBActions以删除完整的引用,否则将出现错误

//不要做这个@iAction这只是一个正常的函数


你在按钮上使用任何图像或文字?哇!那很快。我正在使用一种叫做bar button项的东西您是否在导航栏或工具栏中使用bar button项?这实际上很重要,因为答案比使用标准按钮稍微复杂一些(但仍然不复杂)。你在按钮上使用任何图像或文本?哇!那很快。我正在使用一种叫做bar button项的东西您是否在导航栏或工具栏中使用bar button项?这实际上很重要,因为答案比使用标准按钮稍微复杂一些(但仍然不复杂)。我认为@justinxfan也希望在按下按钮时切换图像。因此,您需要在故事板上创建另一个指向按钮的链接,这一次是一个
IBOutlet
say named
myButton
,并添加类似
self.myButton.setImage(UIImage(named:“StartButton.png”)的内容作为UIImage!,forState:.Normal)
当您想要切换图像时。您不需要设置@IBOutlet,您可以在没有sender.setImage(UIImage(名为:“StartButton.png”),forState:.Normal)的情况下执行此操作,但是此代码应该位于@iAction按钮pressed(sender:UIButton)中。您说得对,我没有注意到您将发件人作为UIButton!我认为@justinxfan还想在press上切换图像。因此,您需要在故事板上创建另一个指向按钮的链接,这一次是一个
IBOutlet
say named
myButton
,并添加类似
self.myButton.setImage(UIImage(named:“StartButton.png”)的内容作为UIImage!,forState:.Normal)
当您想要切换图像时。您不需要设置@IBOutlet,您可以在没有sender.setImage(UIImage(名为:“StartButton.png”),forState:.Normal)的情况下执行此操作,但是此代码应该位于@iAction按钮pressed(sender:UIButton)中。您说得对,我没有注意到您将发件人作为UIButton!
 func start() {
>     timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: ("updateTime"), userInfo: nil, repeats: true)
> 
> 
>     } // smae here... just a function   
     func updateTime() {
> 
>     count = count + 0.1
> 
>     label.text = "\(count)"
> 
> } // same with this just a function 
>        func reset() {
> 
>     timer.invalidate()
> 
>     count = 0
> 
>     label.text = "0"
> 
> }  
> 
> // Now Make a @IBAction to your button , and sender should be UIButton
> 
>

     @IBAction func buttonPressed(sender : UIButton) {   
     if sender.currentTitle == "start" {
    >       sender.setTitle("stop", forState: UIControlState.Normal)
    >       reset() // perform any function that you want to when button is acting as stop button    } 
    else {
    >        sender.setTitle("start", forState: UIControlState.Normal)
    >        start() // perform any function that you want to when button is acting as start button 
    >      } }