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