视图中的委托协议、数据源协议与高级视图
一些高级视图的功能比较复杂,我们需要将这些复杂功能从视图本身剥离开来,由另外一些类完成。当然,这些类需要遵守视图指定的协议。
- 相对简单的视图——只指定了委托协议,包括UITextField和UITextView,对应的委托协议命名规则是**“视图名+Delegate”**
- 对于一些比较复杂的视图,我们同时制定委托协议数据源协议,这些视图在iOS中不是很多,其中主要有选择器(UIPickerView)、集合视图(UICollectionView)和表视图(UItableView)对应的数据源协议命名规则是视图名+DataSourse)
在软件领域,有句话很经典:“有输入的地方,就要验证”
1.选择器
import UIKit
class ViewController: UIViewController{
var datePicker:UIDatePicker!
var label:UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let screen = UIScreen.main.bounds
self.view.backgroundColor = .clear
//添加日期选择器
let datePickerWidth:CGFloat = 320
let datePickerHeight:CGFloat = 167
self.datePicker