Swift UI – 日期选择控件(UIDatePicker)

注:代码已升级至Swift4

使用Storyboard创建日期选择控件

首先我们将一个 UIDatePicker 控件和一个按钮直接添加到 Main.Storyboard 上。该按钮是为了点击时弹出提示框显示当前选择的日期和时间。
同时在 ViewController.swift 中使用 IBOutlet 建立起控件和事件的关联,具体代码如下:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var dpicker:UIDatePicker!
    @IBOutlet var btnshow:UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func showClicked(_ sender:UIButton) {
        let date = dpicker.date

        // 创建一个日期格式器
        let dformatter = DateFormatter()
        // 为日期格式器设置格式字符串
        dformatter.dateFormat = "yyyy年MM月dd日 HH:mm:ss"
        // 使用日期格式器格式化日期、时间
        let datestr = dformatter.string(from: date)

        let message =  "您选择的日期和时间是:\(datestr)"

        // 创建一个UIAlertController对象(消息框),并通过该消息框显示用户选择的日期、时间
        let alertController = UIAlertController(title: "当前日期和时间",
                                                message: message,
                                                preferredStyle: .alert)
        let cancelAction = UIAlertAction(title: "确定", style: .cancel, handler: nil)
        alertController.addAction(cancelAction)
        self.present(alertController, animated: true, completion: nil)
    }
}

纯代码创建日期选择控件

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        //创建日期选择器
        let datePicker = UIDatePicker(frame: CGRect(x:0, y:0, width:320, height:216))
        //将日期选择器区域设置为中文,则选择器日期显示为中文
        datePicker.locale = Locale(identifier: "zh_CN")
        //注意:action里面的方法名后面需要加个冒号“:”
        datePicker.addTarget(self, action: #selector(dateChanged),
                            for: .valueChanged)
        self.view.addSubview(datePicker)
    }

    //日期选择器响应方法
    func dateChanged(datePicker : UIDatePicker){
        //更新提醒时间文本框
        let formatter = DateFormatter()
        //日期样式
        formatter.dateFormat = "yyyy年MM月dd日 HH:mm:ss"
        print(formatter.string(from: datePicker.date))
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

日期选择控件文字改成中文

默认日期选择控件中的文字是英文,如果想显示中文,则需要将日期选择控件的区域做如下设置

//将日期选择器区域设置为中文,则选择器日期显示为中文
datePicker.locale = Locale(identifier: "zh_CN")

改变控件时间选择模式

默认情况下日期选择控件里面选项既有日期,又有时间。我们可以修改选择模式,让它只有其中一种。

(1)只有日期选择

datePicker.datePickerMode = .date

(2)只有时间选择

datePicker.datePickerMode = .time

修改文字颜色

UIDatePicker 默认的文字颜色是黑色,但如果我们使用的是深色背景的话(比如)会难以辨认。我们可以通过 setValue 来修改文字颜色。

datePicker.setValue(UIColor.white, forKey: "textColor")

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/25/swift-ui-date-selection-control-uidatepicker/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Swift UI – 日期选择控件(UIDatePicker)
注:代码已升级至Swift4 使用Storyboard创建日期选择控件 首先我们将一个 UIDatePicker 控件和一个按钮直接添加到 Main.Storyboard 上。该按钮是为了点击时……
<<上一篇
下一篇>>
文章目录
关闭
目 录