如何在Swift 3.0中创建时间选择器视图?

14

我成功地在Swift中使datePicker视图显示在我的UITextField上。但是我需要以HH:MM:SS的格式选择时间。我对此一无所知。我需要将所选时间应用于时间UITextField。那么,如何在Swift中制作时间选择器?请参考下面的图片。Swift 2.2、2.0的答案也可以。非常感谢朋友们!

enter image description here

3个回答

21

更新至Swift 3:

如果你想显示时间选择器,请使用下面的Swift 3代码:

变量声明:

let timePicker = UIDatePicker()

方法定义:

func openTimePicker()  {
    timePicker.datePickerMode = UIDatePickerMode.time
    timePicker.frame = CGRect(x: 0.0, y: (self.view.frame.height/2 + 60), width: self.view.frame.width, height: 150.0)
    timePicker.backgroundColor = UIColor.white
    self.view.addSubview(timePicker)
    timePicker.addTarget(self, action: #selector(yourViewControllerName.startTimeDiveChanged), for: UIControlEvents.valueChanged)
}

func startTimeDiveChanged(sender: UIDatePicker) {
    let formatter = DateFormatter()
    formatter.timeStyle = .short
    youtTextFieldName.text = formatter.string(from: sender.date)
    timePicker.removeFromSuperview() // if you want to remove time picker
}

这个问题是......当你选择小时并且暂停了一秒钟,它会自动关闭。任何试图使用这种解决方案的人都可能想要在代码中添加一个标志来检查是否完成编辑或使用另一个视图控制器来使用此方法。代码可以工作,但用户体验需要改进。投票+1。 - Muhammad Asyraf

14

datePickerMode设置为time

Swift 3

self.datePicker.datePickerMode = .time

Swift 2.3或更低版本

self.datePicker.datePickerMode = .Time

注意:这将使您只能选择小时分钟,如果您想要选择,则需要使用自定义时间选择器。


-1

适用于 Swift 5+ 版本

计时器(不显示秒部分)

@IBOutlet weak var timerPicker: UIDatePicker!
...
 self.timerPicker.datePickerMode = .countDownTimer
 print("countdown duration",  String(timerPicker.countDownDuration))

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接