昨天我们已经能把单一地点的天气资讯显示到手机App上面了,接着我们会利用UIButton让我们可以选择想要的地点及时段!
首先,我们先拉一个UIButton进storyboard里并拉好@IBOutlet
接着我们要写按下Button後的@IBAction,我们会利用UIPickerView来完成选择地点和时间的功能!
我们先宣告常数及变数
并在ViewDidLoad里设定UIPickerView的DataSource和Delegate
接着来写选取地点时间UIPickerView的function
func locationView() {
let alertView = UIAlertController(
title: "选择地点",
message: "\n\n\n\n\n\n\n\n\n",
preferredStyle: .alert
)
let cancelAction = UIAlertAction(
title: "取消",
style: .cancel,
handler: nil
)
let okAction = UIAlertAction(
title: "确认",
style: .default,
handler: {_ in
self.loadAPI(locationName: self.selectLocation, time: self.selectTime)
self.timeView()
}
)
alertView.view.addSubview(locationPickerView)
alertView.addAction(cancelAction)
alertView.addAction(okAction)
present(alertView, animated: true, completion: nil)
}
func timeView() {
let alertView = UIAlertController(
title: "选择时间",
message: "\n\n\n\n\n\n\n\n\n",
preferredStyle: .alert
)
let cancelAction = UIAlertAction(
title: "取消",
style: .cancel,
handler: nil
)
let okAction = UIAlertAction(
title: "确认",
style: .default,
handler: {_ in self.loadAPI(locationName: self.selectLocation, time: self.selectTime)}
)
alertView.view.addSubview(timePickerView)
alertView.addAction(cancelAction)
alertView.addAction(okAction)
present(alertView, animated: true, completion: nil)
}
最後写一个extension
extension ViewController: UIPickerViewDataSource, UIPickerViewDelegate {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView == locationPickerView {
return location.count
}
if pickerView == timePickerView {
return timeData.count
}
return 0
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == locationPickerView {
return location[row]
}
if pickerView == timePickerView {
return timeData[row]
}
return nil
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView == locationPickerView {
selectLocation = location[row]
}
if pickerView == timePickerView {
selectTime = row
}
}
}
我们就能成功选择地点和时间啦!
<<: [Android Studio 30天自我挑战] ListView 元件介绍
>>: 【没钱买ps,PyQt自己写】Day 21 - 透过 PyQt 实现滑鼠监听总整理,完全掌握滑鼠控制 (listen mouse)
碍於篇幅的关系,来不及介绍关於Rails MVC的所有全貌。在Day23介绍了基本的MVC操作,今天...
DAY12 在 Azure Machine Learning 里 Label data(上) Azu...
照顾...是谁的工作? 当我病痛衰弱时,谁可以照顾我? 家人?朋友?爱人? 但照顾者不需要休息跟喘息...
今日kata 原始题目如下:(6kyu) You are going to be given an ...
三人行石头火锅 地点:台南市新营区民治路111号 时间:17:00~23:00 居然撑15天了~XD...