欢呼,
//我的委托和数据源
导入基础
class MyPickerView: NSObject{
var data = PickerViewData.getData()
}
extension MyPickerView: UIPickerViewDataSource{
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return 1
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return self.data.count
}
}
extension MyPickerView: UIPickerViewDelegate{
func pickerView(_ pickerView: UIPickerView, rowHeightForComponent
component: Int) -> CGFloat {
return 100
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int,
forComponent component: Int, reusing view: UIView?) -> UIView {
let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let dayLbl = UILabel(frame: CGRect(x: 0, y: 10, width: 100, height: 15))
let priceLbl = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let petLbl = UILabel(frame: CGRect(x: 0, y: 78, width: 100, height: 15))
dayLbl.text = data[row].dayName
priceLbl.text = String(data[row].price)
petLbl.text = data[row].petName
dayLbl.textAlignment = .center
priceLbl.textAlignment = .center
petLbl.textAlignment = .center
view.addSubview(dayLbl)
view.addSubview(priceLbl)
view.addSubview(petLbl)
return view
}
}
//我的模型
import Foundation
struct PickerViewModel{
var dayName:String!
var price:Double!
var petName:String!
init(dayName:String,price:Double,petName:String) {
self.dayName = dayName
self.price = price
self.petName = petName
}
}
struct PickerViewData {
static func getData() -> [PickerViewModel]{
let m = PickerViewModel(dayName: "Pazartesi", price: 32.3,
petName: "Köpek")
let p = PickerViewModel(dayName: "Salı", price: 32.3, petName:
"KuÅ")
let z = PickerViewModel(dayName: "ÃarÅamba", price: 32.3,
petName: "Kedi")
let t = PickerViewModel(dayName: "PerÅembe", price: 32.3,
petName: "Domuz")
let k = PickerViewModel(dayName: "Cuma", price: 32.3, petName:
"Kanarya")
return [m,p,z,t,k]
}
}
//我的控制器
import UIKit
class FirstVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
let pickerView = UIPickerView(frame: CGRect(x: 100, y: 100,
width: 200, height: 500))
let deldat = MyPickerView()
pickerView.delegate = deldat
pickerView.dataSource = deldat
self.view.addSubview(pickerView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}