Time Swift 3:使用滑块显示时间

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

我正试图编写一个类似IOS 10新的就寝时间功能的闹钟,但我对Swift还相当陌生。我有两个UISlider:一个用于何时睡觉,另一个用于何时醒来。我的问题是:如何组合这两个UISlider?我怎样才能让它计时?滑块中是否可能有网格线和停止点?我的想法是增量为0.12,当值达到0.60时,我会将其计算为1小时和“…”分钟

编辑:添加图像和代码

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
    }
  }