iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Mobile Development

ios 的小小實驗室 !系列 第 21

DAY 21 『 連接 API 實作 - 天氣 APP 』Part3

  • 分享至 

  • xImage
  •  

昨天已經把 struct 寫好了,今天來呈現資料在手機畫面上。


刻好畫面後,在 ViewController.swift ( MainVC.swift ) 加入程式碼

@IBOutlet weak var backgroundImage: UIImageView!
@IBOutlet weak var locationName: UILabel!
@IBOutlet weak var pop: UILabel!
@IBOutlet weak var maxT: UILabel!
@IBOutlet weak var minT: UILabel!
@IBOutlet weak var wx: UILabel!
@IBOutlet weak var otherCitys: UIButton!

拉完線後程式碼長這樣

p.s.

  1. 「 ℃ 」這個符號,可以按 control + command + 空白,往找到類字母符號的分類,就會有這個溫度單位的符號可以使用囉!
  2. 可透過此連結查詢 API 因子的中英對照,方便自己刻 UI:預報因子欄位中文說明表

將所需圖片加入 Assets.xcassets 裡

依據舒適度( wx )搭配適合的 weather Icon

func descriptionToImage () {
        if wx.text!.contains("雨") {
            if wx.text!.contains("雷") { backgroundImage.image = UIImage(named: "rain1") }
            else if wx.text!.contains("晴") { backgroundImage.image = UIImage(named: "rain2") }
            else { backgroundImage.image = UIImage(named: "rain3") }
        }
        else if wx.text!.contains("晴") {
            if wx.text!.contains("雲") { backgroundImage.image = UIImage(named: "sunnycloud1") }
            else { backgroundImage.image = UIImage(named: "sunnycloud2") }
        }
        else if wx.text!.contains("陰") { backgroundImage.image = UIImage(named: "cloud") }
        else if wx.text!.contains("雲") { backgroundImage.image = UIImage(named: "cloudsunny") }
    }

創一個 TableView 畫面,提供使用者選擇城市
在專案底下 New Group / New File / 選 Cocoa Touch Class

宣告城市

struct Citys {
    var taiwanCityName: String
}
 var cityitem = [
        Citys(taiwanCityName: "宜蘭縣"),Citys(taiwanCityName: "花蓮縣"),
        Citys(taiwanCityName: "臺東縣"),Citys(taiwanCityName: "澎湖縣"),
        Citys(taiwanCityName: "金門縣"),Citys(taiwanCityName: "連江縣"),
        Citys(taiwanCityName: "臺北市"),Citys(taiwanCityName: "新北市"),
        Citys(taiwanCityName: "桃園市"),Citys(taiwanCityName: "臺中市"),
        Citys(taiwanCityName: "臺南市"),Citys(taiwanCityName: "高雄市"),
        Citys(taiwanCityName: "基隆市"),Citys(taiwanCityName: "新竹縣"),
        Citys(taiwanCityName: "新竹市"),Citys(taiwanCityName: "苗栗縣"),
        Citys(taiwanCityName: "彰化縣"),Citys(taiwanCityName: "南投縣"),
        Citys(taiwanCityName: "雲林縣"),Citys(taiwanCityName: "嘉義縣"),
        Citys(taiwanCityName: "嘉義市"),Citys(taiwanCityName: "屏東縣")
    ]

TableView Delegate、DataSource

extension TableViewVC: UITableViewDelegate,UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return cityitem.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cityCell", for: indexPath) as! TableViewCell
        let city = cityitem[indexPath.row]
        cell.cityName.text = city.taiwanCityName
        return cell
    }
    func numberOfSections(in tableView: UITableView) -> Int { return 1 }
}

程式碼說明

在的 viewDidLoad() 裡記得加上

cityTableView.delegate = self
cityTableView.dataSource = self

明天會介紹如何辨別點選到哪一個城市,以及將城市天氣資訊呈現在手機上

敬請期待!


上一篇
DAY 20 『 連接 API 實作 - 天氣 APP 』Part2
下一篇
DAY 22 『 連接 API 實作 - 天氣 APP 』Part4
系列文
ios 的小小實驗室 !30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言