Date/Time 选择器 Swift 4

Date/Time Picker in Swift 4

我如何制作一个允许选择分钟和秒并将其设置为倒计时的 Time/Date 选择器(我只需要知道如何制作 Time/Date 选择器)。我找到了很多教程,但它们是在 Main.storyboard 中制作的。我想将它添加到我的 GameScene.swift(文件类型是 Cocoa Touch Class)。我在游戏类型应用程序中使用 Swift 4 in Xcode 9.3。

提前致谢!

您需要分秒选择器。所以,默认的 UIDatePicker 不提供这个功能。所以,我使用 UIPickerView 制作了自定义选择器。

1) 首先,将这段代码写在viewDidLoad()方法中。

    let timePicker: UIPickerView = UIPickerView()
    //assign delegate and datasoursce to its view controller
    timePicker.delegate = self
    timePicker.dataSource = self

    // setting properties of the pickerView
    timePicker.frame = CGRect(x: 0, y: 50, width: self.view.frame.width, height: 200)
    timePicker.backgroundColor = .white

    // add pickerView to the view
    self.view.addSubview(timePicker)

2) 其次,扩展你的 viewcontroller 并像我在下面所做的那样给它们 UIPickerViewDelegate 和 UIPickerViewDataSource。

extension ViewController: UIPickerViewDelegate, UIPickerViewDataSource{

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 2
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return 60
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return String(format: "%02d", row)
    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        if component == 0{
            let minute = row
            print("minute: \(minute)")
        }else{
            let second = row
            print("second: \(second)")
        }
    }
}

希望对您有所帮助。