PickerView
在創建時是空的,我們可以在XIB裡進行設定,以達到目的。
PickerView
的countor
的class中增加 UIPickerViewDataSource
與UIPickerViewDelegate
class MainViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
//其他程式
}
PickerView
名稱@IBOutlet weak var pkvcity: UIPickerView!
3.設定delegate
與初始項目
override func viewDidLoad() {
super.viewDidLoad()
pkvcity.delegate = self
pkvcity.dataSource = self
pkvcity.selectRow(0, inComponent: 0, animated: false)
pickerView(pkvcity, didSelectRow: 0, inComponent: 0)
}
4.設定PickerView
要顯示的項目有幾項
//這是天氣API的專案裡的寫法
let cities = ["臺北市", "新北市", "桃園市", "臺中市", "臺南市", "高雄市", "基隆市", "新竹市", "嘉義市", "苗栗縣", "彰化縣", "南投縣", "雲林縣", "嘉義縣", "屏東縣", "宜蘭縣", "花蓮縣", "台東縣", "澎湖縣", "金門縣", "連江縣"]
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return cities.count // 城市數量
}
5.設定有幾個區塊
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1 // 只有一個區段
}
6.設定每一項的名稱
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return cities[row] // 顯示城市名稱
}
7.設定當PickerView
的值改變時觸發動作
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
//你的程式
}
透過以上步驟,我們已經成功地在PickerView
中顯示了城市列表,並且實現了在選擇不同城市時觸發相應的動作。這些設定能讓我們的應用更加互動,並且方便地取得對應的天氣資料。其實可以進一步優化此PickerView
的設計,例如加入搜尋功能或是依照地區分類城市,讓使用者體驗更加順暢,但本文部會涉及此地。