Time Swift 3:使用滑块显示时间
我正试图编写一个类似IOS 10新的就寝时间功能的闹钟,但我对Swift还相当陌生。我有两个UISlider:一个用于何时睡觉,另一个用于何时醒来。我的问题是:如何组合这两个UISlider?我怎样才能让它计时?滑块中是否可能有网格线和停止点?我的想法是增量为0.12,当值达到0.60时,我会将其计算为1小时和“…”分钟 编辑:添加图像和代码Time Swift 3:使用滑块显示时间,time,swift3,uislider,alarm,Time,Swift3,Uislider,Alarm,我正试图编写一个类似IOS 10新的就寝时间功能的闹钟,但我对Swift还相当陌生。我有两个UISlider:一个用于何时睡觉,另一个用于何时醒来。我的问题是:如何组合这两个UISlider?我怎样才能让它计时?滑块中是否可能有网格线和停止点?我的想法是增量为0.12,当值达到0.60时,我会将其计算为1小时和“…”分钟 编辑:添加图像和代码 import UIKit class ViewController: UIViewController { @IBOutlet weak var
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var sleepTime: UISlider!
@IBOutlet weak var displaySleep: UITextField!
var sliderValue1 = 12
var sliderValue2 = 12
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func slider1Changed(_ sender: UISlider!) {
var currentValue1 = Int(sender.value)
displaySleep.text = "\(sliderValue2 - currentValue1) hours of sleep"
}
@IBAction func slider2Changed(_ sender: UISlider!) {
var currentValue2 = Int(sender.value)
displaySleep.text = "\(currentValue2 - sliderValue1) hours of sleep"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
回答您的第一个问题 您可以使用分段控件将两个滑块组合起来。当用户选择“睡眠”或“唤醒”时,它将在执行时相应地更改
滑块的值
控件单击,然后从分段控件拖动到视图控制器
类,以创建iAction
连接。确保将类型更改为UISegmentedControl
@IBAction func onControlChanged(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0: // Sleep selected
// Update Slider
break
case 1: // Wake Up selected
// Update Slider
break
default:
break
}
}