一 UIPickerView是一種選擇控制器
1 它繼承與UIView 需要遵從 UIPickerViewDelegate,UIPickerViewDataSource 倆個(gè)代理
2 創(chuàng)建pickerView
func loadSite() {
pickerView = UIPickerView()
view.addSubview(pickerView)
// 設(shè)置代理和數(shù)據(jù)源
pickerView.delegate = self
pickerView.dataSource = self
// 設(shè)置選擇框的默認(rèn)值
pickerView.selectRow(2, inComponent: 0, animated: true)
pickerView.selectRow(3, inComponent: 1, animated: true)
// 約束 根據(jù)自己的情況適配
pickerView.snp.makeConstraints { (make) in
make.bottom.left.right.equalTo(view)
make.height.equalTo(150)
}
}
// MARK: Picker Delegate 實(shí)現(xiàn)代理方法
func numberOfComponents(in pickerView: UIPickerView) -> Int {
//返回多少列
return 2
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
//返回每一列有多少行
if 0 == component {
return areaArray.count
}else {
return cityArray.count
}
}
func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
//每行多高
return 40
}
func pickerView(_ pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {
// 每列多寬
return 100
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
//賦值
if 0 == component {
let dic = areaArray[row] as! Dictionary<String,AnyObject> as! NSMutableDictionary
return (dic["state"] as? String)
}else {
let area = cityArray[row] as! String
return (area)
}
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
//選中所執(zhí)行的方法
if 0 == component {
}else {
}
}