12.10 UIDatePicker
UIDatePicker是日期选择器控件,用来选择日期和时间。UIDatePicker继承自UIControl类,因此可以作为交互控件使用。如果为UIDatePicker关联Value Changed的事件,可在绑定的回调方法中得到当前选择的日期。
12.10.1 在视图中添加UIDatePicker
创建一个UIDatePickerPractise项目,在Object Library中找出UIDatePicker,如图12.10.1所示:
图12.10.1 Object Library中的Date Picker
使用鼠标左键点住,将其拖拽至Main.storyboard上,如图12.10.2所示:
图12.10.2 将Date Picker拖入Storyboard
点击Xcode顶部工具栏中的“Assistant Editor”,使Storyboard和View Controller同时展示,鼠标指针移至Date Picker上方,右键点住将其拖动至View Controller文件中类声明的下一行,此时会提示一个黑框“Insert Outlet,Action,or Outlet Collection”,如图12.10.3所示:
图12.10.3 为Date Picker生成对应的属性
放开鼠标右键,Xcode会弹出一个提示框让开发者选择将为Storyboard中的Date Picker链接一个属性(Outlet)还是一个动作(Action)。此例中先添加一个属性,名为“datePicker”,点击“Connect”按钮,完成添加,如图12.10.4所示:
图12.10.4 为Date Picker生成的属性命名
View Controller中多了一个属性,在代码中,开发者可以通过这个属性访问到界面上的datePicker控件。
接着像添加属性一样为UIDatePicker关联值变化的事件,如图12.10.5所示:
图12.10.5 为Date Picker关联值变化的事件
开发者可以通过下面这个方法知道UIDatePicker日期值发生了变化,添加一个打印日期的语句,代码如下:
动手写12.10.1 UIDatePickerPractise->ViewController.swift
运行模拟器,如图12.10.6所示:
图12.10.6 UIDatePickerPractise模拟器运行结果
开发者更换Date Picker中的日期时,底部的控制台将会不断地打印出Date Picker中日期的变化情况,如下:
每次Date Picker中日期发生了变化时,datePickerValueChanged方法都会被调用,并且显示最新Date Picker中的日期。