[Xcode 实际操作]四、常用控件-(11)UIDatePicker日期时间选择器
本文将演示日期拾取器的使用。
使用日期拾取器,可以快速设置和选择日期与时间。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 //首先初始化一个日期拾取器对象 9 let datePicker = UIDatePicker() 10 //日期拾取器对象的中心点位置 11 datePicker.center = CGPoint(x: 160, y: 200) 12 //接着设置日期拾取器的标识值,以便将来再次使用它。 13 datePicker.tag = 1 14 //设置日期拾取器的最小值,其最小值为当前的日期。 15 datePicker.minimumDate = Date() 16 //设置日期日期拾取器的最大值,其最大值为距离当前三天之后的日期 17 datePicker.maximumDate = Date(timeInterval: 3*24*60*60, since: Date()) 18 //将日期拾取器对象,添加到当前窗口的根视图 19 self.view.addSubview(datePicker) 20 21 //创建一个位置在(20,360),尺寸为(280,44)的显示区域 22 let rect = CGRect(x: 20, y: 360, width: 280, height: 44) 23 //初始化一个样式为圆角矩形的按钮对象 24 let button = UIButton(type: UIButton.ButtonType.roundedRect) 25 //设置按钮的位置和尺寸属性 26 button.frame = rect 27 //设置按钮的背景颜色为浅灰色 28 button.backgroundColor = UIColor.lightGray 29 //设置按钮的标题文字 30 button.setTitle("Get date", for: .normal) 31 //接着给按钮绑定点击事件 32 button.addTarget(self, action: #selector(ViewController.getDate(_:)), for: UIControl.Event.touchUpInside) 33 //然后将按钮添加到当前根视图 34 self.view.addSubview(button) 35 } 36 37 //添加一个方法,用来执行按钮的点击事件 38 @objc func getDate(_ button:UIButton) 39 { 40 //通过标识值,获取当前日期拾取器对象 41 let datePicker = self.view.viewWithTag(1) as! UIDatePicker 42 //获得日期拾取器的日期值 43 let date = datePicker.date 44 //新建一个日期格式化对象,用来实现日期的格式化 45 let dateFormater = DateFormatter() 46 //设置日期的格式,大写的字母H,表示采用24小时制 47 dateFormater.dateFormat = "yyyy-MM-dd HH:mm" 48 //将日期转换为指定格式的字符串 49 let dateAndTime = dateFormater.string(from: date) 50 51 //创建一个警告弹出窗口,显示日期结果。 52 let alert = UIAlertController(title: "Information", message: dateAndTime, preferredStyle: UIAlertController.Style.alert) 53 //创建一个按钮,作为提示窗口中的【确定】按钮, 54 //当用户点击该按钮时,将关闭提示窗口 55 let OKAction = UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil) 56 //将【确定】按钮添加到提示窗口中 57 alert.addAction(OKAction) 58 //在当前视图控制器中,展示提示 窗口 59 self.present(alert, animated: true, completion: nil) 60 } 61 62 override func didReceiveMemoryWarning() { 63 super.didReceiveMemoryWarning() 64 // Dispose of any resources that can be recreated. 65 } 66 }