如何在 swift 3.0 中制作时间选择器视图?
Posted
技术标签:
【中文标题】如何在 swift 3.0 中制作时间选择器视图?【英文标题】:How to make a time picker view in swift 3.0? 【发布时间】:2016-09-18 05:44:59 【问题描述】:我在 Swift 中成功地使 datePicker
视图覆盖了我的 UITextField
。但我需要时间以HH:MM:SS
的格式进行挑选。我对此一无所知。我需要及时申请所选时间UITextField
。那么,如何在 Swift 中制作时间选择器?请参考下图。 swift 2.2 , 2.0 的答案也可以。非常感谢朋友们!
【问题讨论】:
【参考方案1】:为 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【参考方案2】:将datePickerMode
设置为time
斯威夫特 3
self.datePicker.datePickerMode = .time
Swift 2.3 或更低版本
self.datePicker.datePickerMode = .Time
注意:这将只允许您选择Hours
和Minutes
,如果您想选择Seconds
,您还需要自定义时间选择器。
【讨论】:
【参考方案3】:为 Swift 5+ 添加
用于计时器(它不显示秒部分。)
@IBOutlet weak var timerPicker: UIDatePicker!
...
self.timerPicker.datePickerMode = .countDownTimer
print("countdown duration", String(timerPicker.countDownDuration))
【讨论】:
以上是关于如何在 swift 3.0 中制作时间选择器视图?的主要内容,如果未能解决你的问题,请参考以下文章